java - 从 Windows 路径字符串中提取驱动器号

标签 java windows path drive drive-letter

Java 中是否有任何内置的跨平台方式来解析 Windows 路径字符串并提取 Windows 的根路径(包括驱动器号)?

根据 Java SE documentation ,可以使用 java.nio.file.Path 类,例如

String path = "C:\\this\\is\\a\\windows\\file path.txt"
Path p = Paths.get(path);
String drive = p.getRoot();

但是,Path 对象构造是特定于操作系统的,这意味着如果以上代码仅在 Windows 中执行时才会返回驱动器号;否则,它只返回 null

当然,可以使用自定义方法(例如,正则表达式或简单的字符串处理)来检索驱动器盘符(如果存在),但是是否已经在 J​​ava 中实现了任何跨平台方法来这样做?

最佳答案

Java 中似乎没有内置的跨平台方式来检索文件的根路径(例如,驱动器),因此第三方库或自定义代码是只有解决方案。

Apache Commons IO有一个FilenameUtils类及其 getPrefix() 方法完全符合问题的要求。

关于java - 从 Windows 路径字符串中提取驱动器号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33642543/

相关文章:

java - 必须为元素类型 "column"声明属性/"type" "property"

java - 为什么没有 LinkedList.join() 方法来在 O(1) 时间内合并两个未排序的列表?

java - 如何为翻译内存库/缓存设计高性能的键匹配算法?

windows - Dos 提示符 - 仅在出错时暂停执行/显示?

ruby - 使用 Ruby 读取目录中其他地方的文件

java - Interprolog 和 SWI-Prolog

c - 将 C 程序从 Linux 迁移到 Windows

windows - Windows 上的 Git 不要求 SSH key 密码,或使用 SSH key

python - 如何在python中获取路径的左侧部分?

Ruby RJB 无法创建 Java VM 错误