gpt4 book ai didi

java - 从驱动器号获取分区名称,反之亦然

转载 作者:太空宇宙 更新时间:2023-11-04 15:13:40 25 4
gpt4 key购买 nike

我正在开发的程序需要访问可移动驱动器。通常这不会成为问题,因为安装点应该保持不变(例如:在 Ubuntu 上,我手机的 SD 卡安装在 /media/sebastian/GT-S5830/ ),但在 Windows 上,驱动器号可能会有所不同。 (同一部手机:曾经 E:\ ,当相机安装在 E: 时插入后,它变成 F: 并保持不变。)

所以我想通过不保存驱动器号而是保存分区名称来解决这个问题。

例如:设置时,路径E:\DCIM\Camera\被给予。现在我想做以下事情:

  • 获取安装在 E: 的分区的名称
  • 将给定目录的路径保存为类似 <partname>:\DCIM\Camera\ 的形式
  • 访问设备时,解析名为 partname 的分区的盘符
  • 通过连接驱动器号和冒号后面的路径部分来构建路径。

如何通过在 Windows 上提供挂载点来获取分区名称,在 Java 上如何通过提供挂载点来获取分区名称?

最佳答案

您可能想要探索FileSystemView以获取有关文件系统的更多信息。更多分类示例 here .

出于您的原因,您可能希望获取可移动磁盘的句柄并对信息执行某些操作:

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 磁盘的卷信息 - 更多详细信息 here .

关于java - 从驱动器号获取分区名称,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21064923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com