2010-12-07 20 views
3

Je crée un explorateur de fichiers de base et, dans un mode, il parcourt les racines de fichier et les répertorie. Je l'ai obtenir l'icône, la lettre de lecteur, la date de dernière modification, le nom du lecteur et la taille en octets. Tout cela fonctionne, mais le nom du lecteur. Est-ce que quelqu'un sait comment l'obtenir? Voici une version de base de mon code:Obtention du nom de lecteur en 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; 
    } 
    }); 
} 

Répondre

4

Avez-vous essayé?

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

huh ... On dirait que je dois utiliser le paquet 'javax.swing.filechooser' a tout ce dont j'ai besoin ... Ironique, n'est-ce pas? – Supuhstar

+6

Oui, et vous devriez y regarder d'abord AVANT de poster une question. C'est votre 6ème question sur ce sujet et vous continuez à être référé au même endroit. Faites quelques problèmes de base et apprenez à lire l'API d'abord! – camickr