gpt4 book ai didi

java - Glob 语法不适用于 Windows PathMatcher

转载 作者:行者123 更新时间:2023-11-29 04:38:18 26 4
gpt4 key购买 nike

无论出于何种原因,我似乎无法获得匹配任何文件的 glob 语法路径匹配器。

我已将我的代码简化为以下方法:

public static void match() throws IOException {

String startingLocation = "C:\\";

PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher("glob:*");

Files.walkFileTree(Paths.get(startingLocation), new SimpleFileVisitor<Path>() {

@Override
public FileVisitResult visitFile(Path path,
BasicFileAttributes attrs) throws IOException {
if (pathMatcher.matches(path)) {
System.out.println(path);
}
return FileVisitResult.CONTINUE;
}

@Override
public FileVisitResult visitFileFailed(Path file, IOException exc)
throws IOException {
return FileVisitResult.CONTINUE;
}
});
}

我的理解是,该方法应该列出我 C 盘上的所有文件。但是,它不会打印出单个文件。

有趣的是,如果我用“regex:.”而不是“glob:”运行同样的东西,它似乎确实列出了我 C 驱动器上的所有文件。

我可以努力将我的 glob 表达式转换为正则表达式,但我真的不想这样做。

有谁知道可能出了什么问题吗?

请注意,我在装有 Java 8 的 Windows 7 机器上运行

最佳答案

请务必阅读 javadoc仔细。

如果要打印出C:盘的所有文件,将模式更改为 glob:**glob:C:\\\\**(如 javadoc 中所写)。

另请注意,Files.walkFileTree 仅匹配文件。

关于java - Glob 语法不适用于 Windows PathMatcher,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40313448/

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