想象一下带有SSD和HDD的PC。
SSD分为两个分区:C和D。
HDD分为两个分区:E和F。
我需要创建一个方法:
boolean isOnSamePhysicalDrive(String drive1, String drive2);
isOnSamePhysicalDrive(“ C”,“ D”)-> true
isOnSamePhysicalDrive(“ E”,“ F”)-> true
isOnSamePhysicalDrive(“ C”,“ E”)-> false
答案 0 :(得分:3)
Java.nio.file.FileStore
是您要寻找的。 p>
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());
}
就这样
Name: SSD
Type: NTFS
Name: Door systeem gereserveerd
Type: NTFS
Name:
Type: NTFS
请注意,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());
将打印特定驱动器或分区的名称。就我而言:
SSD
Door systeem gereserveerd