Path myFile = Paths.get("c:").resolve("folderOne").resolve("filename.txt");
Output: this creates the folderOne in the folder that the program runs but not at c:\ as hoped.
答案 0 :(得分:2)
在驱动器名称后使用斜杠或反斜杠:
final Path path = Paths.get("c:/").resolve("folderOne").resolve("filename.txt");
Files.createDirectories(path.getParent());
请注意,在Windows上,斜杠(c:/
)可以正常工作。反斜杠也可以使用:Paths.get("c:\\")
。
还请注意,Paths.get()
和Path.resolve()
不会不能自己创建目录。您可以使用Files.createDirectories()
来完成这项工作。
Paths.get()
解析整个路径如果路径是固定的,则可以直接使用Paths.get()
进行解析-无需调用.resolve()
:
final Path path = Paths.get("c:/folderOne/filename.txt");
同样,斜杠和反斜杠在Windows上均可使用。
C:
(不带反斜杠)将创建一个DRIVE_RELATIVE
路径-表示该路径从给定驱动器上的当前文件夹开始。来自https://docs.microsoft.com/en-us/dotnet/standard/io/file-path-formats
C:Projects\apilibrary\apilibrary.sln
从C:
驱动器的当前目录起的相对路径 。
您可以通过转换为绝对路径来查看此内容:
System.out.println(
Paths.get("c:").resolve("folderOne").resolve("filename.txt")
.toAbsolutePath()
);
链接:
答案 1 :(得分:1)
根据Java Tutorial,这就是您根据情况创建目录的方式。
apiCall
答案 2 :(得分:0)
您需要在课程中导入以下内容:
import java.nio.file.Path;
import java.nio.file.Paths;
然后您可以使用:
Path path = Paths.get("D:\\directoryName"); Files.createDirectories(path);
您还需要在代码周围加上try-catch块,或者可以像这样添加throws IOException:
public static void main(String args[]) throws IOException
{
..
}