0

Java (新しいバージョン) および Windows XP (ntfs) の場合:

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

最後が違うのはなぜ?

この質問に関連して、概念的な違いは何ですか?

フォルダーやファイルが「書き込み可能」であることは同じという意味ではありませんか。または、ロックされたファイルまたはフォルダーでは、コンテンツにアクセスできません。

フォルダは、実際には内容リストを含むファイルと考えています。実際にvimで開くことができます。結局のところ、バイナリまたはテキストデータを含むすべてのファイルシステム要素はなぜですか。この 2 つのポリシーにより、事態は複雑になっています。この点で、私は実際に UNIX のファイルの哲学が好きです。フォルダ、ファイル、デバイス ファイル (特殊ファイル) の違いはありません。

そして、階層的なファイルシステム構造は実際には gof4 複合パターンであるため、私は正しいと思います。「ファイルシステム要素」も抽象化しています。

なぜ Java はここで物事を複雑にしているのでしょうか?

4

1 に答える 1

1

ああ、理由は(​​ファイルではなく)既存のフォルダーがあるだけなので、例外タイプはFileAlreadyExistsExceptionであってはなりません。

于 2013-03-22T09:33:30.557 に答える