gpt4 book ai didi

java - 确定 `.` 和 `..` 在 Java 文件系统中是否为 "special names"

转载 作者:行者123 更新时间:2023-12-04 10:21:19 25 4
gpt4 key购买 nike

我已经习惯了这样想 ...总是具有特殊含义的文件名。但是一些 Java 11 API,例如 Path.normalize() 表明这仅适用于某些文件系统实现:

In many file systems, the "." and ".." are special names used to indicate the current directory and parent directory.



...仅在某些文件系统上是“特殊名称”,我如何查询文件系统以了解这些名称是否是特殊名称 FileSystem 执行?

最佳答案

没有规范要求 FileSystem实现为您提供此信息。

所以即使有些FileSystem会为您提供此信息,如果您不处理不提供此信息的文件系统,您将无法确定。

如果你真的关心这些信息并且需要它来让你的代码正常工作,那么你唯一的选择就是沿着这条线

Map<String, Object> env = new HashMap<>();
FileSystem f = FileSystems.newFileSystem(new URI("rw:///"), env);

boolean equalsDoesntNormalize = !f.getPath("a/./b").equals(f.getPath("a/b"));
boolean equalAfterNormalize = f.getPath("a/./b").normalize().equals(f.getPath("a/b"));
boolean dotIsSpecial = equalAfterNormalize && !equalsDoesntNormalize;

但是,老实说:我认为您不需要这些信息......

关于java - 确定 `.` 和 `..` 在 Java 文件系统中是否为 "special names",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60834114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com