在java中,您可以使用File.listRoots()
獲取系統中的所有驅動器。枚舉外部驅動器
我期待只得到外部驅動器,即USB驅動器,外置硬盤,光驅,軟驅等
有沒有辦法做到這一點在Java中?如果不是,本地C++代碼也會很好。在那種情況下,我需要Windows和Linux代碼。
在java中,您可以使用File.listRoots()
獲取系統中的所有驅動器。枚舉外部驅動器
我期待只得到外部驅動器,即USB驅動器,外置硬盤,光驅,軟驅等
有沒有辦法做到這一點在Java中?如果不是,本地C++代碼也會很好。在那種情況下,我需要Windows和Linux代碼。
你可以使用WMI或可考慮
GetRawInputDeviceList()
GetRawInputDeviceInfo()
這應該讓你開始
C++
的Java
的http:// forums.java.net/jive/thread.jspa?threadID=37942
您的答案似乎傾向於輸入設備(鍵盤和鼠標)而不是大容量存儲設備。 – 2010-06-05 13:44:39
你有一個好點! – 2010-06-07 12:46:45
獲取文件系統信息,使用類似:
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());
}
}
}
以及驅動器是內部的還是外部的,它仍然不能回答 – 2010-06-06 04:39:21
軟件如何知道如何安裝驅動器?除主物理驅動器外,所有驅動器都可以安裝在內部或外部。可能有一種方法可以從外部CD啓動並訪問外部驅動器,而不需要任何驅動器。 – 2010-06-05 15:27:24