2013-03-22 87 views
0

在Java(新版本)和Windows XP(NTFS):創建文件,例外情況在Java

1 - 現有的文件f,Files.createFile(Paths.get(F)): FileAlreadyExistsException

2 - 現有文件f,Files.createDirectory(Paths.get(F)): FileAlreadyExistsException

3 - 現有文件夾FO,Files.createDirectory(Paths.get(FO)): FileAlreadyExistsException

4 - 現有的文件夾fo,Files.createFile(Paths.get(fo)): AccessDeniedException

爲什麼最後一個與衆不同?

鏈接到this問題,概念的區別是什麼?

這對於文件夾或文件「可寫」時是否相同?或者一個鎖定的文件或文件夾,您無法訪問該內容。

我覺得一個文件夾實際上是一個帶有內容列表的文件。你可以用vim實際打開它。所以最後,爲什麼所有的文件系統元素都包含二進制或文本數據。這種雙重政策讓事情變得複雜。在這方面,我確實喜歡unix文件的哲學。它不會影響文件夾,文件和設備文件(特殊文件)。

而分層文件系統結構實際上是gof4複合模式,我認爲我是對的,它也抽象出一個「Filesystemelement」。

爲什麼Java在這裏複雜化?

+1

您需要寫入/創建權限我猜,或者甚至讀取該路徑的權限。 – 2013-03-22 06:57:11

回答

1

aha,原因就是存在一個文件夾(不是文件), 所以異常類型不能是FileAlreadyExistsException。

+0

然後,第三種情況也不會是「FileAlreadyExistsException」,因爲它是一個文件夾,也 – panny 2013-03-23 04:12:23

相關問題