如何使用路径(不是文件)在c:\创建文件夹?

问题描述 投票:2回答:3
Path myFile = Paths.get("c:").resolve("folderOne").resolve("filename.txt");

输出:这会在程序运行的文件夹中创建folderOne,但不会在c:\中创建。

java nio
3个回答
2
投票

修复

在驱动器名称后使用斜杠或反斜杠:

    final Path path = Paths.get("c:/").resolve("folderOne").resolve("filename.txt");
    Files.createDirectories(path.getParent());

请注意,斜杠(c:/)在Windows上运行正常。反斜杠的作用也很好: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
投票

根据Java Tutorial,这将是你如何在你的情况下创建一个目录。

Path path = Paths.get("C:\\folderOne");
Files.createDirectories(path);

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
{
..
}
© www.soinside.com 2019 - 2024. All rights reserved.