2014-02-05 53 views
0

我需要一個指向目錄的文件對象(可能不存在)。我怎麼做?獲取目錄的文件對象

即使我這樣做

File dir = new File("/tmp/something/"); // with trailing slash 

dir.isDirectory()false。然後我嘗試了dir.mkdir(),它返回false,爲什麼?我不需要該目錄存在,實際上,我希望它指向一個不存在的目錄(我正在測試)。我怎樣才能做到這一點?

+0

您已擁有。 'dir.isDirectory()'返回'false',文件夾不存在。 ;) – Hannes

+0

[Documentation](http://docs.oracle.com/javase/7/docs/api/java/io/File.html#isDirectory()):「如果並且只有**,如果文件這個抽象路徑名存在**並且是一個目錄;否則爲false「 –

回答

0

使用dir.mkdirs()

mkdirs()將產生的全部指定的目錄路徑mkdir()只會造成最底層的目錄,如果沒有它不能找到它試圖創建目錄的父目錄。

+0

不知何故,它仍然返回false。代碼評估爲'new File(「/ tmp/nonexistant」)',我應該可以寫入tmp,並在這裏創建不存在的最新錯誤? –

+0

另外我只想獲得File對象而不創建目錄,是否有可能? –

+0

File對象需要文件的路徑,因此目錄是需要的,但是你可以將文件保留在現有目錄中。不需要生成 – Kick

0

尾部的斜線並不重要。 File.isDirectory返回false,因爲它返回true當且僅當此抽象路徑名錶示的文件存在並且是來自javadoc的目錄

1

「true當且僅當此抽象路徑名錶示的文件存在並且是一個目錄「

如果文件不存在isDirectory()返回false。如果你正在進行測試,可能使用存根可能是一個更好的選擇,在單元測試中最好儘量不要觸及文件系統等外部資源。