1. 程式人生 > >JAVA自動適配Linux與Windows檔案路徑分隔符

JAVA自動適配Linux與Windows檔案路徑分隔符

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路徑怎麼辦?所以說,能寫完善的地方儘量完善。。。畢竟前車之鑑不遠啊。。。上次也是掛了一批程式。。。