1
我使用System.getenv()來獲取系統環境的值。在Windows變量並取回形式的東西:在java中獲取完整的系統環境路徑
C:\ PROGRA〜1 ...
即;簡式。
是否有可能獲得完整的表格;例如「C:\ PROGRAM FILES ...」
我想對返回的字符串執行搜索,如果我使用完整字符串,會更好。
感謝
格雷厄姆
我使用System.getenv()來獲取系統環境的值。在Windows變量並取回形式的東西:在java中獲取完整的系統環境路徑
C:\ PROGRA〜1 ...
即;簡式。
是否有可能獲得完整的表格;例如「C:\ PROGRAM FILES ...」
我想對返回的字符串執行搜索,如果我使用完整字符串,會更好。
感謝
格雷厄姆
沒有,是的。
不,你不能從「env」屬性對象/地圖中獲取它們。
但是你應該能夠將這些DOS風格的「8.3」文件名轉換爲完整的文件名。
顯然,它就像在包含「8.3」名稱的路徑上調用
...或者我在某處讀過。顯然這是不正確的。File.getCanonicalPath()
一樣簡單......如果您在Windows上運行。
執行此操作的標準「Microsoft」方法是使用Win32 std庫中的Win32::GetLongPathName(PATHNAME)
。我無法在Java中找到任何東西,因此您可能需要使用JNI/JNA。
另一種選擇是踩任何將8.3路徑放入Windows環境變量的路徑。
只需查看File.getCanonicalPath()的javadoc,其中指出「規範形式的精確定義是依賴於系統的。」。測試它我仍然得到短名稱。 – user25029