在java中,您可以使用File.listRoots()
来获取系统中的所有驱动器。
我希望只获得外置硬盘,即USB硬盘,外置硬盘,光驱,软盘等。
有没有办法在java中做到这一点?如果没有,原生C ++代码也会很好。在这种情况下,我需要Windows和Linux代码。
答案 0 :(得分: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());
}
}
}
答案 1 :(得分:0)
您可以使用WMI或查看
GetRawInputDeviceList()
GetRawInputDeviceInfo()
这应该让你入门
C ++
爪哇
http:// forums.java.net/jive/thread.jspa?threadID=37942