这就是我遇到的问题:如果部分或全部路径尚不存在,服务器应根据需要在层次结构中创建其他目录,然后如上所述创建新文件。
Files.createDirectories(path);
这就是我目前使用的,但它不会创建结束文件。例如,path =“/ hello / test.html”它将创建一个名为“hello”的目录和一个名为“test.html”的目录,我希望test.html成为一个文件。我怎么能这样做?
答案 0 :(得分:3)
这就是我为解决这个“问题”或滥用库所做的工作。
Files.createDirectories(path.getParent());
Files.createFile(path);
第一行将获取父目录,所以假设这是我要创建的“/a/b/c/hello.txt”,父目录将是“/ a / b / c /”。
第二个将在该目录中创建文件。
答案 1 :(得分:1)
你看过javadoc了吗? createDirectories
只创建...目录。如果您打算使用Files.createDirectories
,请解析文件名,调用仅传递路径部分的createDirectories
,然后创建一个传递整个路径的新文件。否则this是一种更好的方法。
Files.createDirectories(path.substring(0, path.lastIndexOf(File.separator)+1));
File yourFile = new File(path);
答案 2 :(得分:0)
您可以解析“路径”'使用分隔符隔离文件和目录的变量' /'和do File file = new File(parsedPath);
只有当你知道你总是在文件结尾处传递文件名时才会有效。
如果您知道何时a)创建目录b)创建目录和文件,您可以传递布尔变量来描述是否需要创建文件。