2010-06-05 104 views
7

在java中,您可以使用File.listRoots()獲取系統中的所有驅動器。枚舉外部驅動器

我期待只得到外部驅動器,即USB驅動器,外置硬盤,光驅,軟驅等

有沒有辦法做到這一點在Java中?如果不是,本地C++代碼也會很好。在那種情況下,我需要Windows和Linux代碼。

+0

軟件如何知道如何安裝驅動器?除主物理驅動器外,所有驅動器都可以安裝在內部或外部。可能有一種方法可以從外部CD啓動並訪問外部驅動器,而不需要任何驅動器。 – 2010-06-05 15:27:24

回答

12

獲取文件系統信息,使用類似:

import java.io.*; 
import javax.swing.filechooser.*; 

public class DriveTypeInfo 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("File system roots returned by FileSystemView.getFileSystemView():"); 
     FileSystemView fsv = FileSystemView.getFileSystemView(); 
     File[] roots = fsv.getRoots(); 
     for (int i = 0; i < roots.length; i++) 
     { 
     System.out.println("Root: " + roots[i]); 
     } 

     System.out.println("Home directory: " + fsv.getHomeDirectory()); 

     System.out.println("File system roots returned by File.listRoots():"); 

     File[] f = File.listRoots(); 
     for (int i = 0; i < f.length; i++) 
     { 
     System.out.println("Drive: " + f[i]); 
     System.out.println("Display name: " + fsv.getSystemDisplayName(f[i])); 
     System.out.println("Is drive: " + fsv.isDrive(f[i])); 
     System.out.println("Is floppy: " + fsv.isFloppyDrive(f[i])); 
     System.out.println("Readable: " + f[i].canRead()); 
     System.out.println("Writable: " + f[i].canWrite()); 
     } 
    } 
} 

而且見thisthisthis問題。

+0

以及驅動器是內部的還是外部的,它仍然不能回答 – 2010-06-06 04:39:21