首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从驱动器字母中获取分区名称,反之亦然

从驱动器字母中获取分区名称,反之亦然
EN

Stack Overflow用户
提问于 2014-01-11 16:40:18
回答 1查看 1.7K关注 0票数 2

我正在开发的程序需要访问可移动驱动器。通常情况下,这不会是一个问题,因为挂载点应该保持不变(例如: Ubuntu的SD卡被安装在/media/sebastian/GT-S5830/上),但是在Windows上有驱动器字母,这可能会有所不同。(同一部手机:一旦E:\,当摄像头安装在E:上后,它就变成了F:,并保留了下来。)

因此,我想解决这个问题,不是保存驱动器的字母,而是分区名称。

设置时,给出了路径E:\DCIM\Camera\。现在我想做以下几点:

  • 获取在E:挂载的分区的名称
  • 将路径保存到给定目录,以类似于<partname>:\DCIM\Camera\
  • 访问设备时,解析分区的驱动器字母partname
  • 通过连接驱动器字母和冒号后的路径部分来构建路径。

如何通过在Windows上指定挂载点来获得分区名称,反之亦然?

EN

回答 1

Stack Overflow用户

发布于 2014-01-11 17:40:46

您可能想研究一下FileSystemView,以获得更多关于文件系统的信息。更多的分类例子,这里

出于您的原因,您可能希望在可移动磁盘上获得一个句柄,并对信息执行以下操作:

代码语言:javascript
复制
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));
            }

        }

输出:

代码语言:javascript
复制
Root: C:\Users\popofibo\Desktop
Local Disk (C:)
Recovery (D:)
Removable Disk (E:)

如果需要更详细的这里,您可能需要使用JNA检查Windows磁盘的卷信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21064923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档