how can I create a folder at c:\ using Paths(not File)?

时间:2018-09-19 08:27:25

标签: java nio

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.

3 个答案:

答案 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.slnC:驱动器的当前目录起的相对路径

您可以通过转换为绝对路径来查看此内容:

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
{
..
}