我使用System.getenv()来获取系统环境的值。 Windows中的变量并返回以下形式:
C:\ PROGRA〜1 ...
即;简短形式。
是否可以获得完整的表格;例如“C:\ PROGRAM FILES ...”
我想对返回的字符串执行搜索,如果我使用完整的字符串会更好。
由于
格雷厄姆
答案 0 :(得分:1)
不,是的。
不,你不能从“env”属性对象/地图中获取它们。
但是你应该能够将那些DOS风格的“8.3”文件名翻译成完整的文件名。
显然,就像在包含“8.3”名称的路径上调用 ......或者我在某处读到。显然这不正确。File.getCanonicalPath()
一样简单......如果你在Windows上运行。
标准的“Microsoft”方法是使用Win32标准库中的Win32::GetLongPathName(PATHNAME)
。我无法在Java中找到任何来执行此操作,因此您可能需要求助于JNI / JNA。
另一种方法是踩踏将8.3路径放入Windows环境变量的任何内容。