日期:2014-05-20 浏览次数:22613 次
File[] roots = File.listRoots();
for (int i = 0; i < roots.length; i++) {
System.out.println(roots[i]);
}
import java.io.File;
import javax.swing.filechooser.FileSystemView;
public class ByteTest {
public static void main(String[] args) {
FileSystemView sys = FileSystemView.getFileSystemView();
File[] files = File.listRoots();
for(int i = 0; i < files.length; i++) {
System.out.println(files[i] + " -- " + sys.getSystemTypeDescription(files[i]));
}
}
}
------解决方案--------------------
按理说应该返回的是一个类型标识,就像 Windows API 中 GetDriveType(http://msdn.microsoft.com/zh-cn/library/aa364939%28v=VS.85%29.aspx) 返回的那些,但是在 Java 中我好像没有找到。
FileSystemView#getSystemTypeDescription 方法只能将究着用用,如果要有更高的要求,只能通过 Windows API 和 JNI 去实现了。
------解决方案--------------------
查了一下FILE的源代码,的确,JAVA是用JNI拿的系统信息
static private FileSystem fs = FileSystem.getFileSystem();
public static native FileSystem getFileSystem();
估计要拿完整的驱动器信息只有用JNI掉DLL了