【问题标题】:create file, exception cases in java在java中创建文件,异常情况
【发布时间】:2013-03-11 23:10:04
【问题描述】:

在 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 在这里让事情变得复杂?

【问题讨论】:

  • 我猜你需要在那里写/创建权限,甚至需要读取该路径的权限。

标签: java exception filesystems directory createfile


【解决方案1】:

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

【讨论】:

  • 第三种情况也不会是“FileAlreadyExistsException”,因为它也是一个文件夹
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-22
  • 1970-01-01
  • 2021-06-05
  • 1970-01-01
  • 2019-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多