關於File.separator 文件路徑:wind與linux下路徑問題 .


最近有個在頁面上傳Excel文件至服務器指定目錄並進行數據校驗、最后入庫及進行進一步處理的應用情境,我寫好代碼在模擬環境下測試,完全沒問題;但客戶試用的時候,卻老是報告“No such file or diretory ”的異常,上傳不了。后來發現是文件路徑的問題。我的模擬測試環境是windows+tomcat,而客戶的環境是linux+tomcat,文件路徑的分隔符在windows系統和linux系統中是不一樣。

比如說要在temp目錄下建立一個test.txt文件,在Windows下應該這么寫:
File file1 = new File ("C:\tmp\test.txt");
在Linux下則是這樣的:
File file2 = new File ("/tmp/test.txt");

如果要考慮跨平台,則最好是這么寫:
File myFile = new File("C:" + File.separator + "tmp" + File.separator, "test.txt");

File類有幾個類似separator的靜態字段,都是與系統相關的,在編程時應盡量使用。

separatorChar

public static final char separatorChar

與系統有關的默認名稱分隔符。此字段被初始化為包含系統屬性 file.separator 值的第一個字符。在 UNIX 系統上,此字段的值為 '/';在 Microsoft Windows 系統上,它為 '\'。

separator

public static final String separator

與系統有關的默認名稱分隔符,為了方便,它被表示為一個字符串。此字符串只包含一個字符,即 separatorChar。

pathSeparatorChar

public static final char pathSeparatorChar

與系統有關的路徑分隔符。此字段被初始為包含系統屬性 path.separator 值的第一個字符。此字符用於分隔以路徑列表 形式給定的文件序列中的文件名。在 UNIX 系統上,此字段為 ':';在 Microsoft Windows 系統上,它為 ';'。

pathSeparator

public static final String pathSeparator

與系統有關的路徑分隔符,為了方便,它被表示為一個字符串。此字符串只包含一個字符,即 pathSeparatorChar。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM