【发布时间】:2013-09-27 11:55:18
【问题描述】:
Path 对象不只是指抽象路径吗? 来自here的以下引用:
如果给定的路径与不同的文件系统相关联 path 则返回 false。
似乎并非如此。如果它只是抽象的,则引用哪个文件系统并不重要。 不是吗?
【问题讨论】:
Path 对象不只是指抽象路径吗? 来自here的以下引用:
如果给定的路径与不同的文件系统相关联 path 则返回 false。
似乎并非如此。如果它只是抽象的,则引用哪个文件系统并不重要。 不是吗?
【问题讨论】:
虽然Path 实例与底层文件系统路径没有内在关联,但实际的实现类可能不同。例如,您有WindowsPath (WindowsFileSystem) 和ZipPath (ZipFileSystem)。尽管路径字符串本身可能相同,但它们与不同的FileSystems 相关,因此该方法应该返回false。
Path 是一个接口。然而startsWith 的实现关心传递给它的Path 实例的实际实现类型。
【讨论】:
FileSystem 的同一路径,则返回true。假设您在 zip 文件中有一个路径,例如 /usr/app/file.txt,还有一个来自文件系统根目录的文件,例如 /usr/app/file.txt。尽管路径由相同的字符串表示,但它们在任何方面都不相等(或startsWith彼此)。