2017-04-04 61 views
1

是否存在解決包含環境變量的文件路徑的現有Java解決方案?從包含環境變量的路徑中檢查Java是否存在文件

我需要轉換此(簡化)方法來處理提供的路徑包含環境變量(如%PROGRAMFILES(X86)%\ SomeProgram \ SomeFile.ini)的情況。

我知道如何編寫代碼來提取變量名,取他們的價值和所提供的字符串替換他們,但我不禁覺得我重新發明輪子...

boolean isValidPath(String pathToValidate) { 
    File f = new File(pathToValidate); 
    if(f.exists()) { 
    return true; 
    } 
    return false; 
} 

回答

0

幾乎可以肯定它在標準庫中是不存在的,因爲任何環境變量在使用上都非常具體。有些允許用分號分隔的列表如PATH,有些只有一個單一的值。也依賴env變量的值意味着代碼變得更具有平臺特定性,並且jr似乎以合理的成本避免它。

在github上已經有這樣的替代者的幾個實現,例如https://github.com/Haufe-Lexware/java-env-replacer

0

實際上,你可以通過調用System.getenv()獲取環境變量的細節,然後你可以寫一些邏輯(如下圖所示樣品)來實現你想要的東西:

public boolean isValidPath(String pathToValidate) { 
    String envValue = ""; 
    for (String envName : env.keySet()) { 
     if(pathToValidate.contains(envName)) { 
      envValue= env.get(envName); 
      break; 
     } 
    } 
    //replace the envValue in pathToValidate 
    //Then check file exists or not & return true/false 
} 
相關問題