在windows下的路徑分隔符和linux下的路徑分隔符是不一樣的,當直接使用絕對路徑時,跨平台會暴出「no such file or diretory」的異常。
比如說要在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。
跨平台路徑問題
在windows下的路徑分隔符和linux下的路徑分隔符是不一樣的,當直接使用絕對路徑時,跨平台會暴出 no such file or diretory 的異常。比如說要在temp目錄下建立乙個test.txt檔案,在windows下應該這麼寫 file file1 new file c tmp t...
jmeter CSV檔案路徑如何跨平台使用
當你的控制機為windows系統,負載機為linux系統,現在需要控制機兼職做負載機,csv時檔案路徑就無法跨平台使用,下面方法可以解決此問題。csv 資料檔案設定直接按下面的格式寫 username.txt p是大寫,數量兩個 這樣就可以了,只要把 csv 檔案上傳到 linux 系統 jmete...
Erlang程式的跨平台問題
用erlang寫出的程式,如果使用依賴某一作業系統的專有技術,會在其他系統上跑不起來。最近,學用mochiweb過程中,在windows的cygwin中遇到了這個問題。開啟瀏覽器,http localhost 8000 出現網頁,程式執行正常。但是,由於mochiweb是在linux上開發的,使用了...