在 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打开它。那么最后,为什么所有文件系统元素都包含二进制或文本数据。这双重政策使事情变得复杂。在这方面,我实际上确实喜欢文件的 unix 哲学。文件夹、文件和设备文件(特殊文件)之间没有区别。
由于分层文件系统结构实际上是 gof4 复合模式,我认为我是对的,它也抽象出一个“文件系统元素”。
为什么Java在这里使事情复杂化?