`
q_wong
  • 浏览: 109613 次
  • 性别: 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-getDisk.rar_Java 获取主板ID_java获取电脑ID

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

    第十三节 磁盘列表和统计

    通过对这些根目录进行遍历,可以进一步获取磁盘的详细信息,如磁盘大小、可用空间、卷标等。 其次,磁盘统计则包含了关于磁盘读写速度、I/O操作频率、错误率等性能指标。在Java中,获取这些统计信息通常需要借助JMX...

    FSO操作大全

    8. **获取驱动器根路径** ```vbscript getfso = fso.GetDrive("c:").RootFolder ``` 返回驱动器的根文件夹。 9. **获取可用空间** ```vbscript getfso = fso.GetDrive("c:").AvailableSpace ``` 返回可用于...

    FSO组件详解(详细教程包括所有集合,属性,方法)

    它可以对文件、文件夹和目录路径进行操作,也可以通过它获取文件系统的信息。 FSO 组件的属性: * Drives:返回本地计算机上所有驱动器对象的集合。 * FileSystem:返回指定驱动器所使用的文件系统类型。 FSO ...

    JavaScript文件流操作.doc

    - `Path` 和 `RootFolder`:驱动器的路径或根目录名称。 ##### 2. `Drive`对象操作示例 下面的示例代码展示了如何显示驱动器C的卷标、总容量和可用空间等信息: ```javascript var fso, drv, s = ""; fso = new ...

Global site tag (gtag.js) - Google Analytics