1. 程式人生 > >Linux和window下的檔案路徑問題

Linux和window下的檔案路徑問題

Linux系統下的資料夾路徑和window下的不一樣,windows下就需要寫成“\\photos"因為java會把第一個"\"當成轉義字元給”吃了“。但在linux下就是 
  “/photos”呵呵,是不是很鬱悶阿。所以你的if (myFile.newFolder(path+"\\photos")) 
  就應該寫成if (myFile.newFolder(path+"/photos"))以此類推。 
  public static final String FILE_SEPARATOR = System.getProperties()。getProperty("file.separator"); 

  檔案分隔符(在 UNIX 系統中是“/”),window 是"\" 
    為了程式的可移植性,使用File.separator來寫路徑。 
    File(String pathname) 
通過將給定路徑名字串轉換為抽象路徑名來建立一個新 File 例項。 
public static final String separator 
與系統有關的預設名稱分隔符,為了方便,它被表示為一個字串。此字串只包含一個字元,即 separatorChar。 
public static final char separatorChar 
與系統有關的預設名稱分隔符。此欄位被初始化為包含系統屬性 file.separator 值的第一個字元。在 UNIX 系統上,此欄位的值為 '/';在 Microsoft Windows 系統上,它為 '\\'。 

注意: 

路徑名字串與抽象路徑名之間的轉換與系統有關。將抽象路徑名轉換為路徑名字串時,每個名稱與下一個名稱之間用一個預設分隔符 隔開。預設名稱分隔符由系統屬性 file.separator 定義,可通過此類的公共靜態欄位 separator 和 separatorChar 使其可用。將路徑名字串轉換為抽象路徑名時,可以使用預設名稱分隔符或者底層系統支援的任何其他名稱分隔符來分隔其中的名稱

System.getProperty("user.dir") 獲取工程路徑名

System.getProperty("file.separator").equals("/")  判斷linux的方法。

用File.separator這個可以直接替換路徑問題,不需要判斷