创建文件,例外情况在Java

问题描述:

在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

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

+0

然后,第三种情况也不会是“FileAlreadyExistsException”,因为它是一个文件夹,也 – panny 2013-03-23 04:12:23