在java中创建文件,异常情况

时间:2013-03-22 06:56:18

标签: java exception filesystems directory createfile

在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

为什么最后一个不同?

this问题相关联,概念差异是什么?

当文件夹或文件“可写”时,它是否意味着它们是相同的。或者是锁定的文件或文件夹,您无法访问该内容。

我认为文件夹实际上是一个带有内容列表的文件。你可以用vim实际打开它。所以最后,为什么所有文件系统元素都包含二进制或文本数据。这种双重政策使得事情变得复杂。在这方面我实际上喜欢unix的文件哲学。它在文件夹,文件和设备文件(特殊文件)之间没有区别。

由于分层文件系统结构实际上是gof4复合模式,我认为我是对的,它也抽象出了“Filesystemelement”。

为什么Java在这里复杂化了?

1 个答案:

答案 0 :(得分:1)

啊哈,原因是存在一个文件夹(不是文件), 所以异常类型不能是FileAlreadyExistsException。