Acquiring drive names (as opposed to drive letters) in Java

后端 未结 3 711
天命终不由人
天命终不由人 2020-12-07 01:03

On my Windows machine, my main hard drive has the letter C: and the name \"Local disk\".

To list the drive letters in Java on Windows, the File object has the stati

3条回答
  •  忘掉有多难
    2020-12-07 01:25

    Actually to get the drive name (ex. Local Disk) you need to use getSystemTypeDescription. getSystemDisplayName returns the volume name.

    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 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
          */
        }
    }
    

提交回复
热议问题