Find all drive letters in Java对于一个我正在从事的项目。 我需要在文件系统上寻找可执行文件。 对于UNIX派生类,我假设用户将文件包含在强大的$ PATH变量中,但是Windows上没有这样的东西。 我可以放心地假设该文件在文件系统中最多为2个级别,但是我不知道它将是什么驱动器。 我必须尝试所有驱动器,但无法弄清楚如何列出所有可用的驱动器(已为其分配了字母)。 有什么帮助吗? 编辑:我知道有一个%PATH%变量,但是它不像UNIX系统中那样集成。 例如,我要查找的应用程序是OpenOffice。 通常,此类软件不在%PATH%中。 http://docs.oracle.com/javase/7/docs/api/java/io/File.html#listRoots()
谷歌:列表驱动器的Java,第一次命中:-) 看起来"无处不在"可能非常混乱。 查看CD-ROM驱动器,它旋转起来。那可能很吵。 查看网络驱动器,它可能非常慢。可能服务器已关闭,您可能需要等待几分钟直到超时。 也许(对于Windows计算机)您应该只看开始菜单。如果没有任何东西指向OOo,则可能未安装。如果是这样,则该用户可能是高级用户,手动指出位置不会有问题。 Windows确实确实具有PATH环境变量。它与Unix具有不同的语法,因为它使用分号(;)而不是冒号(:)作为分隔符,并且您必须注意可能包含空格的带引号的字符串。但是,它在那里。 如果该另一个程序的安装程序将其自己的目录添加到PATH环境变量中,则可以依靠该目录。但是,正如您提到的,Windows安装程序通常不需要将应用程序路径添加到PATH,因为它们安装了开始菜单快捷方式或其他方法。 对于Java中的驱动器号,一种方法是尝试所有驱动器号,最多只能使用24个(C到Z)的任何用处。或者,您可以掏空并运行" net use"并解析结果,尽管这有点麻烦。
使用JNI。
当然,Windows中有一个
|