java - 创建文件,java中的异常情况

标签 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 复合模式,我认为我是对的,它也抽象出了“文件系统元素”。

为什么 Java 会让事情变得复杂?

最佳答案

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

关于java - 创建文件,java中的异常情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15564509/

相关文章:

java - 如何报告后台任务的进度?

java - 使用 JDBC 领域进行身份验证

java - 调用 Method.getParameterTypes() 时获取意外的参数类型

python - 在 python 中,有没有办法在将对象传递给函数之前知道它是否为 "implements an interface"?

operating-system - 确定分区所属的文件系统

c++ - 没有 Qt 的 C++ 中的 os.path 等效吗?

java - 是否有系统范围的 Preferences API 版本?

c++ - 如果 delete[] p 失败会发生什么?

Python-从外部进程复制时如何知道文件是否完成

java - 从 ArrayList<Form> 中删除会抛出 UnsupportedOperationException