想象一下带有SSD和HDD的PC。
SSD分为2个分区:C和D。
HDD分为2个分区:E和F。
我需要创建一个方法:
boolean isOnSamePhysicalDrive(String drive1, String drive2);
Run Code Online (Sandbox Code Playgroud)
isOnSamePhysicalDrive(“ C”,“ D”)-> true
isOnSamePhysicalDrive(“ E”,“ F”)-> true
isOnSamePhysicalDrive( “C”, “E”) - > 假
Java.nio.file.FileStore就是您正在寻找的。
https://docs.oracle.com/javase/7/docs/api/java/nio/file/FileStore.html
文件的存储。FileStore 表示存储池、设备、 分区、卷、具体文件系统或其他特定于文件存储实现的方式。
此代码在执行时打印我的分区的名称。
for (FileStore fs: FileSystems.getDefault().getFileStores()) {
System.out.println("Name: " + fs.name());
System.out.println("Type: " + fs.type());
}
Run Code Online (Sandbox Code Playgroud)
像这样
Name: SSD
Type: NTFS
Name: Door systeem gereserveerd
Type: NTFS
Name:
Type: NTFS
Run Code Online (Sandbox Code Playgroud)
请注意,这Door systeem gereserveerd是我的主驱动器 SSD 的一个分区。请原谅荷兰语。
Lokale schijf方法Local drive
。该磁盘未命名,这就是结果中没有显示名称的原因。
更具体地说,您可以使用这个。
System.out.println(Files.getFileStore(Paths.get("C:/")).name());
System.out.println(Files.getFileStore(Paths.get("E:/")).name());
Run Code Online (Sandbox Code Playgroud)
将打印特定驱动器或分区的名称。就我而言:
SSD
Door systeem gereserveerd
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |