JAVA自動適配Linux與Windows檔案路徑分隔符
阿新 • • 發佈:2019-02-19
linux檔案路徑分隔符為 / ,windows的檔案路徑分隔符為 \ ,在開發專案過程中不確定使用者使用何種作業系統,就需要自動適配路徑。
目前已知java提供兩種方法獲取檔案路徑分割符:
File.separator
System.getProperty("file.separator")
提供一個簡單工具類:
public class FilePathUtil { public static final String FILE_SEPARATOR = System.getProperty("file.separator"); //public static final String FILE_SEPARATOR = File.separator; public static String getRealFilePath(String path) { return path.replace("/", FILE_SEPARATOR).replace("\\", FILE_SEPARATOR); } public static String getHttpURLPath(String path) { return path.replace("\\", "/"); } }
當然也可以使用request方法獲取檔案路徑:
String serverPath = request.getServletContext().getRealPath("/assets/data/templete/import/");
此種方法會自動適配檔案分隔符獲取到工程目錄下的 assets/data/templete/import 資料夾,不必考慮分隔符檔案路徑。
PS:預設情況下,直接寫linux路徑(/),tomcat執行在windows下是可以找到正確路徑的;但是寫windows路徑(\),在linux平臺下就會出現如下情況:
雖說寫 linux 路徑暫時沒有問題,但是某一天java升級,在windows平臺上不能識別出linux路徑怎麼辦?所以說,能寫完善的地方儘量完善。。。畢竟前車之鑑不遠啊。。。上次也是掛了一批程式。。。