java - 如何使用路径(不是文件)在 c:\ 创建文件夹?
问题描述
Path myFile = Paths.get("c:").resolve("folderOne").resolve("filename.txt");
输出:这会在程序运行的文件夹中创建 folderOne,但不会像希望的那样在 c:\ 中创建。
解决方案
修复
在驱动器名称后使用斜杠或反斜杠:
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()
);
链接:
推荐阅读
- google-apps-script - 无法通过 GAS 连接到 Google Cloud SQL
- r - 使用带有 POSIxct 日期的 geom_path 来显示随着时间的推移使用 ggplot2 的轨迹
- java - 将父方法映射到不同类的子类的相同擦除
- visual-studio-code - 如何在 VSCode 的非 python 调试会话期间临时激活 virtualenv?
- ios - 快速将图像添加到工具栏?
- python - 你如何检查矩形中的碰撞?
- c - 我需要帮助来理解指针的语法
- python - 生成具有相同键的字典列表
- android - 如何在 Android 应用程序中获得准确的信号强度?
- travis-ci - 如何在 travis ci 加密环境变量中转义单个空格?