在Java中获取驱动器名称

在Java中获取驱动器名称

问题描述:

我正在制作一个基本的文件浏览器,并且在一种模式下,它遍历文件根目录并列出它们。我有它得到的图标,驱动器号,最后修改日期,驱动器名称和大小以字节为单位。这些都可以工作,但驱动器名。有谁知道如何得到这个?这里是我的代码的基本版本:在Java中获取驱动器名称

public static final byte ICON_INDEX = 0, NAME_INDEX = 1, MOD_INDEX = 2, TYPE_INDEX = 3, SIZE_INDEX = 4; 
public String headers[] = new String[5]; 

private void updateFileView() 
{ 
    java.io.File[] roots = java.io.File.listRoots(); 
    Object[][] files = new Object[roots.length][headers.length]; 
    for (int i = 0; i < files.length; i++) 
    { 
    files[i][ICON_INDEX] = javax.swing.filechooser.FileSystemView.getFileSystemView().getSystemIcon(roots[i]); 
    files[i][NAME_INDEX] = roots[i]; 
    files[i][MOD_INDEX] = new java.util.Date(roots[i]).toString(); 
    files[i][TYPE_INDEX] = ???; 
    files[i][SIZE_INDEX] = roots[i].length(); 
    } 
    headers[ICON_INDEX] = "Icon"; 
    headers[NAME_INDEX] = "Drive Letter"; 
    headers[MOD_INDEX] = "Last Date Modified"; 
    headers[TYPE_INDEX] = "Drive Name"; 
    headers[SIZE_INDEX] = "Size in Bytes"; 
    displayTable.setModel(new javax.swing.table.DefaultTableModel(files, headers) 
    { 
    private static final long serialVersionUID = 1L; 
    Class[] types = new Class[] 
    { 
     javax.swing.Icon.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Long.class 
    }; 

    @Override 
    public Class getColumnClass(int columnIndex) 
    { 
     return types[columnIndex]; 
    } 

    @Override 
    public boolean isCellEditable(int rowIndex, int columnIndex) 
    { 
     return false; 
    } 
    }); 
} 

你试过了吗?

FileSystemView.getFileSystemView().getSystemDisplayName(...) 
+0

呵呵...看起来我得用'javax.swing.filechooser`软件包来解决所有我需要的问题......讽刺的是,不是吗? – Supuhstar 2010-12-07 21:57:20