所以我试图制作一个地图来存储一些在程序开始的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)
参考: