我的任務是將文件保存在最終用戶指定的路徑中(必須是絕對路徑)。我目前面臨着三個不同的場景如下:如何檢查文件路徑是否無效/在java中不存在
- 路徑名稱是無效的(無法創建)-爲前,路徑名稱由用戶提供:SFG RGDF gfggdgfudf
- 路徑名無效(但是,它可以創建)-爲前:C:\父母\兒童\孫子(這裏C:\家長存在而兒童\孫子沒有
- 路徑名有效(即目錄中S)-爲前:C:\父母\測試
對於第一種情況,我需要將文件保存在默認位置。 第二,我需要創建目錄並保存文件。 最後,我會保存在指定的路徑。
下面是我的代碼片段,它將文件保存在第一個和第二個場景的默認位置。我很難區分第一和第二。 java.io.File.mkdirs適用於第二種情況,但不適用於第一種情況。 作爲這門編程語言的新手,請忽略我可憐的代碼。任何投入將非常感激。
//User input must be absolute path
String saveToFolder = "kut igeiguye jh";
String defaultFolder = "C:\\Parent\\Data";
try{
File file = new File(saveToFolder);
if(!file.exists()){
saveToFolder = defaultFolder;
}
file.mkdirs();
}catch(Exception e){
saveToFolder = defaultFolder;
}
//code to save data in path **saveToFolder**
你爲什麼認爲'sfg rgdf gfggdgfudf'是一個無效路徑?這是有效的。它指向當前目錄中名爲'sfg rgdf gfggdgfudf'的目錄。 –
這裏看看克里斯托弗Oezbek的回答,他列出了無效的路徑字符,這樣你就可以過濾像 myFolderPath.contains字符串(「」) 或 myFolderPath.matches(「regex_for_invalid_characters」) https://開頭計算器。 com/questions/1976007/what-characters-are-in-in-windows-and-linux-directory-names –