Java文件mkdir给出了错误的结果

所以我试图制作一个地图来存储一些在程序开始的dir中的文件。 但在Windows上仍然有一个问题,因为目录是从来没有。 而我找不到解决scheme。 相同的代码在Unix系统上完美工作,但不在Windows系统上。

 protected String createScreenshotMap(){ this.dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); this.date = new Date(); String testMap = this.checkOS(); File fileMap = null; boolean check; try{ if(os.indexOf("win") >= 0){ fileMap = new File(testMap); check = fileMap.canWrite(); System.out.println(check); String path = "C:" + File.separator + "testRun" + File.separator + this.date.toString(); fileMap = new File(path); System.out.println(fileMap.getAbsolutePath()); }else{ fileMap = new File(testMap + this.date.toString() + "/"); } check = fileMap.mkdir(); System.out.println(check); }catch (Exception e){ e.printStackTrace(); } return testMap; } 

如果我运行这段代码,我得到以下输出

 true C:\testRun\Fri Apr 01 15:30:47 CEST 2016 false 

我也检查了我的testRun存在,这对于java来说是好的。 我也检查了是否可以写出来,并给予真正的回报,但它仍然不会在testRun做出testRun

您不能使用以下命令创建文件夹或文件名:冒号)

细节:
关于Microsoft资源,以下字符由Windows保留,不能用于创建文件夹或文件名:

 < (less than) > (greater than) : (colon) " (double quote) / (forward slash) \ (backslash) | (vertical bar or pipe) ? (question mark) * (asterisk) 

参考:

  • 微软
  • 维基百科