在Java中获取驱动器名称(而不是驱动器号)
问题描述:
在我的Windows机器上,我的主硬盘驱动器具有字母C:和名称“本地磁盘”。在Java中获取驱动器名称(而不是驱动器号)
要列出的Windows Java中的驱动器号,文件对象具有静态listRoots()方法。但是我找不到在Windows上获取驱动器名称(而不是驱动器号)的方法。
有没有人试过这个?
答
是啊,你需要得到的FileSystemView对象,并使用getSystemDisplayName。 (我曾经用Java实现过一个Filesystem浏览器)。
虽然它不是完美的,但它会让你的名字。从文档:
文件,目录或文件夹的名称,因为它将显示在系统文件浏览器中。来自Windows的示例:“M:\”目录显示为“CD-ROM(M :)”默认实现从ShellFolder类获取信息。
答
实际上,要获取驱动器名称(例如本地磁盘),您需要使用getSystemTypeDescription。 getSystemDisplayName返回卷名称。
import java.io.File;
import java.util.Arrays;
import java.util.List;
import javax.swing.filechooser.FileSystemView;
public class Test2 {
public static void main(String args[]){
List <File>files = Arrays.asList(File.listRoots());
for (File f : files) {
String s1 = FileSystemView.getFileSystemView().getSystemDisplayName (f);
String s2 = FileSystemView.getFileSystemView().getSystemTypeDescription(f);
System.out.println("getSystemDisplayName : " + s1);
System.out.println("getSystemTypeDescription : " + s2);
}
/* output (French WinXP)
getSystemDisplayName :
getSystemTypeDescription : Disquette 3½ pouces
getSystemDisplayName : REGA1 (C:)
getSystemTypeDescription : Disque local
getSystemDisplayName :
getSystemTypeDescription : Lecteur CD
getSystemDisplayName : My Book (F:)
getSystemTypeDescription : Disque local
*/
}
}
+0
什么是USB密钥的系统类型描述?它不同于Windows XP到Windows 7? – Maxbester 2013-05-24 11:35:54
如何获取磁盘名称。我不是在讨论卷标)但是磁盘名称,如HP CD Drive,Samsung SSD,StoreJet等 – 2016-04-25 11:35:03