`
q_wong
  • 浏览: 108495 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java获取windows根目录卷标

阅读更多

/**
     * 获取根目录卷标
     * 
     * 通过执行window cmd命令获取返回信息后截取字符串获得
     * 目前测试支持中文XP、英文2003Server(32位和64位)
     * win7还没有测过
     * 
     * @param filePath
     * @return
     */
    private String getVol(String filePath)
    {
        String dir = filePath.replace("/", "");
        String cmdStr = "cmd /c vol " + dir;
        String volStr = "";
        try
        {
            String strTemp;
            InputStream in = Runtime.getRuntime().exec(cmdStr).getInputStream();
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(in, "GBK"));
            while ((strTemp = bufferedReader.readLine()) != null)
            {
                volStr += strTemp;
            }
            /*
             * 中文操作系统
             */
            if (volStr.startsWith(" 驱动器") && !volStr.contains("没有标签"))
            {
                return volStr.substring(volStr.indexOf("中的卷是") + 4,
                        volStr.indexOf("卷的序列号是")).trim()
                        + "(" + dir + ")";
            }
            /*
             * 英文操作系统
             */
            else if (volStr.startsWith(" Volume in drive")
                    && !volStr.contains("has no label"))
            {
                return volStr.substring(volStr.indexOf("is") + 2,
                        volStr.indexOf("Volume Serial Number")).trim()
                        + "(" + dir + ")";
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
            return dir;
        }
        return dir;
    }
  /**
     * 根目录卷标map
     * 
     * @return
     */
    public Map<String, String> getVolMap()
    {
        Map<String, String> volMap = new HashMap<String, String>();
        File[] files = File.listRoots();
        for (File f : files)
        {
            String path = f.getPath().replaceAll("\\\\", "/");
            volMap.put(path, getVol(path));
        }
        return volMap;
    }
 
分享到:
评论

相关推荐

    JAVA获取计算机硬盘序列号、分区卷标号、MAC地址、IP地址、计算机名称

    该jar工具包是通过DiskID.dll获取计算机硬盘序列号、分区卷标号、MAC地址、IP地址、计算机名称等的信息,获取内容如下: 计算机名称:201709071714 硬盘序列号:183534442995 C分区卷标号:29F513CB MAC地址:F0-A9-59-...

    解决bat文件名、目录名或卷标语法不正确

    标题中的“解决bat文件名、目录名或卷标语法不正确”是指在Windows操作系统中,当你尝试运行一个批处理(BAT)文件或者访问某个目录时,如果遇到“文件名、目录名或卷标语法不正确”的错误,这通常意味着文件路径、...

    获取和设置磁盘驱动器卷标名称

    - **编程接口**:可以使用WMI(Windows Management Instrumentation)或者.NET Framework的`ManagementObjectSearcher`类来获取卷标信息。 2. 设置卷标: 在Windows中设置磁盘卷标可以通过以下步骤完成: - 右键...

    C#中如何获取磁盘卷标

    ### C#中如何利用WMI获取磁盘卷标 在C#编程中,有时我们需要获取计算机上各个磁盘分区的卷标(即通常所说的盘符名称,如“我的文档”等)。这种需求常见于文件管理软件、系统监控工具等领域。本文将详细介绍如何...

    java-getDisk.rar_Java 获取主板ID_java获取电脑ID

    例如,可以遍历`File.listRoots()`返回的文件对象数组,获取每个分区的根目录,然后通过`Path`的`getFileSystem()`方法和`FileSystem`的`getPathMatcher()`方法来匹配特定的卷标或UUID。 具体实现可能如下: ```...

    FAT根目录位置计算工具

    它的位置取决于几个因素,包括卷标、FAT表的大小、簇大小以及分配给根目录的簇数量。计算根目录位置的过程通常涉及以下步骤: 1. **确定FAT表的大小**:FAT表包含所有文件和空闲簇的分配信息,其大小与FAT类型(FAT...

    获取cpu序列号硬盘卷标(正规码)

    在IT领域,获取计算机硬件的信息,如CPU序列号和硬盘卷标,是常见的系统管理和故障排查操作。这些信息对于诊断问题、验证硬件合法性以及软件授权等具有重要意义。下面将详细介绍如何获取这些信息,并探讨相关技术。 ...

    精彩编程与编程技巧-获得驱动器的卷标...

    `GetVolumeInformation`是Windows操作系统提供的一个API函数,用于获取指定驱动器的卷标、卷序列号、文件系统标志以及文件系统名等信息。 - **函数原型**: ```plaintext LONG GetVolumeInformation( LPCTSTR ...

    C++ 读取硬盘序列号、驱动类型、卷标等

    本主题涉及的是如何使用C++来获取硬盘的相关信息,包括硬盘序列号、驱动类型以及卷标。这些信息在系统管理和软件开发中非常有用,例如在数据恢复、系统监控或硬件认证场景下。 首先,我们需要理解硬盘的基本概念。...

    BAT批处理脚本-给每个盘添加卷标.zip

    `LABEL`命令用于更改驱动器的卷标,这是Windows命令行下的一个功能,可以用来标识和区分不同的磁盘分区。例如,你可以使用以下命令为C盘设置卷标: ```batch LABEL C: "系统盘" ``` 这个脚本可能包含了一个循环...

    FAT32文件目录表结构详解.pdf

    初始状态下,根目录为空,但如果有卷标,系统会在根目录下创建一个卷标目录项。当在根目录下创建新的目录或文件时,系统会在分配给根目录的簇中为它们创建目录项,必要时分配额外的簇来存储数据。 每个目录项包含...

    jAVA如何获取硬盘号

    在Linux环境下,获取硬盘号通常涉及使用`/sys/block`目录下的信息或执行shell命令,但这超出了Java的标准库范围。为实现此功能,我们可以借助`Runtime.exec()`或`ProcessBuilder`来执行外部命令,例如`lsblk`或`df`...

    文件恢复根目录下簇的位置计算

    - 根目录清空,仅保留卷标目录项(如果存在)。 #### 七、利用工具进行手动恢复 在实际操作中,如使用WinHex这样的专业工具来进行手动文件恢复时,需要遵循特定的步骤: 1. **新建目录项**:创建一个新的目录项...

    WinPE系统X盘卷标修改

    用来修改Winpe启动后打开我的电脑,里面有个X盘,正常显示为Boot,我们可将其修改为我们想要的字符;

    给每个盘添加卷标

    自动给每个盘添加卷标

    获取硬盘序列号(不是卷标)

    获取硬盘序列号(不是卷标)。使用时把hdserialnumread.dll拷到windowssystem目录里

    硬盘卷标序列号修改工具

    在Windows操作系统中,硬盘卷标是用户为区分不同硬盘分区而设置的个性化名称,而序列号则是硬盘制造商分配给每个硬盘的独特标识,通常用于识别和追踪硬件。 "硬盘卷标序列号修改工具"是一款专门针对这一需求设计的...

    solr启动报错-文件名目录名或卷标语法不正确-问题解决方法

    本文档记录了solr启动报错"文件名目录名或卷标语法不正确"问题的解决方法

    ubuntu重命名USB磁盘挂载分区卷标

    Ubuntu 重命名 USB 磁盘挂载分区卷标 Ubuntu sistema中重命名 USB 磁盘挂载分区卷标可以通过不同的程序来实现,分别适用于不同的磁盘分区类型。 一、使用 Mtools 编辑 FAT32 格式分区卷标 Mtools 是一个适用于 ...

    VB硬盘信息显示与卷标设定

    摘要:VB源码,系统相关,硬盘,卷标  VB编写的一个与硬盘属性信息读取的小程序,硬盘信息的显示与卷标的设定,调用GetVolumeInformation函数,获得所选盘符的卷标、分区格式信息,变量i的值在大写字母A到大写字母Z...

Global site tag (gtag.js) - Google Analytics