我正在开发的程序需要访问可移动驱动器。通常情况下,这不会是一个问题,因为挂载点应该保持不变(例如: Ubuntu的SD卡被安装在/media/sebastian/GT-S5830/上),但是在Windows上有驱动器字母,这可能会有所不同。(同一部手机:一旦E:\,当摄像头安装在E:上后,它就变成了F:,并保留了下来。)
因此,我想解决这个问题,不是保存驱动器的字母,而是分区名称。
设置时,给出了路径E:\DCIM\Camera\。现在我想做以下几点:
E:挂载的分区的名称<partname>:\DCIM\Camera\partname。如何通过在Windows上指定挂载点来获得分区名称,反之亦然?
发布于 2014-01-11 17:40:46
您可能想研究一下FileSystemView,以获得更多关于文件系统的信息。更多的分类例子,这里。
出于您的原因,您可能希望在可移动磁盘上获得一个句柄,并对信息执行以下操作:
FileSystemView fsv = FileSystemView.getFileSystemView();
File[] files = File.listRoots();
File[] roots = fsv.getRoots();
for (int i = 0; i < roots.length; i++) {
System.out.println("Root: " + roots[i]);
}
for (File fi : files) {
if (fsv.getSystemTypeDescription(fi).contains("Local Disk")
|| fsv.getSystemTypeDescription(fi).contains(
"Removable Disk")) {
System.out.println(fsv.getSystemDisplayName(fi));
}
}输出:
Root: C:\Users\popofibo\Desktop
Local Disk (C:)
Recovery (D:)
Removable Disk (E:)如果需要更详细的这里,您可能需要使用JNA检查Windows磁盘的卷信息。
https://stackoverflow.com/questions/21064923
复制相似问题