在Mac上,OSX,當我做的:文件存在不工作的時候指定路徑
File file = new File("ah/myfile.text");
我可以這樣做:
file.getParent()
我得到
ah
但如果我做
file.exists()
我收到假退回。
爲什麼?
在Mac上,OSX,當我做的:文件存在不工作的時候指定路徑
File file = new File("ah/myfile.text");
我可以這樣做:
file.getParent()
我得到
ah
但如果我做
file.exists()
我收到假退回。
爲什麼?
getParent()只是解析給定的路徑並刪除最後一個段的最後一個斜槓。然而exists()會執行真正的檢查。我認爲,yor文件確實不存在於這個位置。要檢查您的當前目錄,請執行新的File(「。」)。getAbsolutePath()並相應地修改您的路徑。
File file = new File("ah/myfile.text");
System.out.println(file.getParent());
System.out.println(file.exists());
輸出:
ah
false
我得到相同的結果。獲取父級必須將路徑解析爲字符串,即使該文件和/或目錄不存在。
請使用代碼格式設置代碼,輸入/輸出和結構化文檔,如HTML或XML。爲此,請選擇樣本並單擊郵件發佈/編輯表單上方的「{}」按鈕。 –
安德魯 - 會做!謝謝您的幫助。 – JBuenoJr
A File
沒有必要存在。它可以是對系統中已存在的文件的引用,也可以是可能存在於系統中的文件。
你在說的是你有一個ah/myfile.text
(潛在)文件的路徑,但可能是文件和父目錄都不存在。雖然它的父母仍然是ah/
。
您還可以檢查是否做file.getParentFile().exists();
嘗試打印文件的規範路徑存在父。我敢打賭,這並不意味着你認爲它做了什麼。 –
打印路徑。此外,父目錄存在,但文件本身不存在。含義文件夾「ah」存在,但「myfile.text」不存在(至少在File類所指向的目錄中)。 –
'File'表示一個字符串路徑,而不是實際的文件系統文件。 Java 7的NIO API在新的類路徑中更明顯。考慮使用那個 –