Java中获取文件所在驱动器的最佳方法是什么?

joh*_*ohn 2 java file-io java-io

我一直在寻找一种方法来获取在 Windows 上找到文件的驱动器(例如 C://、E://),但我能想到的最好的方法是

.getAbsolutePath().getParent().getParent() etc.
Run Code Online (Sandbox Code Playgroud)

我想要的只是第一个字母,例如E:

实现这一目标的最佳方法是什么?

ΦXo*_*a ツ 5

从java 7开始使用路径类,getRoot()方法文档在这里

返回此路径的根组件作为 Path 对象,如果此路径没有根组件,则返回 null。

例子:

String dllPathString = "C:\\Program Files\\Notepad++\\scilexer.dll";
Path dllPath = Paths.get(dllPathString);
Path driveLetter = dllPath.getRoot();
System.out.println("The dll is in: " + driveLetter);
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于相对路径,并给出“null”。相反,当提供的路径可能是相对路径时,请使用“path.toAbsolutePath().getRoot()”。 (2认同)