2010-06-05 64 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