特别是,我想使用 (不幸的是不可见) sun.nio.fs.Globs.toUnixRegexPattern(String glob)
。
好的,退后一步并提供一些背景信息
我有一个路径迭代器到一个远程的、类似 unix 的文件系统(想想ssh unixhost find path -type f
)。我还有一个用户提供的 glob 模式,我现在想匹配每条路径。
在 unix 机器上,以下工作正常:
matcher = FileSystems.getDefault().getPathMatcher("glob:" + glob);
// ...
for (String s : remoteFind(...)) {
if (matcher.matches(Paths.get(s))) {
// matches, do something
}
}
但是当它在 Windows 上运行时,相同的程序完全失败,因为 FileSystems.getDefault() 返回一个 Windows 文件系统(恐怖,恐怖)并且 '\' 用作分隔符,等等。你得到了图片。没有什么匹配的。
当然我可以停止所有这些废话,只是重写(或者更确切地说,复制)sun.nio.fs.Globs.toUnixRegexPattern(String glob)
,但是还有另一种更优雅的方式吗?