想象一下带有SSD和硬盘的PC。
SSD分为2个分区:C和D.
HDD分为2个分区:E和F.
我需要创建一个方法:
boolean isOnSamePhysicalDrive(String drive1, String drive2);
isOnSamePhysicalDrive(“C”,“D”) - > true
isOnSamePhysicalDrive(“E”,“F”) - > true
isOnSamePhysicalDrive(“C”,“E”) - > false
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());
}
因此
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