日期:2014-05-20 浏览次数:20857 次
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了