java - 在 Java 中使用 glob 匹配路径字符串

标签 java glob

我有以下字符串作为 glob 规则:

**/*.txt

和测试数据:

/foo/bar.txt
/foo/buz.jpg
/foo/oof/text.txt

是否可以使用 glob 规则(无需将 glob 转换为正则表达式)来匹配测试数据并返回有效条目?

一个要求:Java 1.6

最佳答案

如果你有 Java 7 可以使用 FileSystem.getPathMatcher :

final PathMatcher matcher = FileSystem.getPathMatcher("glob:**/*.txt");

这需要将您的字符串转换为 Path 的实例:

final Path myPath = Paths.get("/foo/bar.txt");

对于早期版本的 Java,您可能会从 Apache Commons 的 WildcardFileFilter 中获得一些帮助。 .您也可以尝试从 Spring 的 AntPathMatcher 中窃取一些代码。 - 虽然这非常接近 glob-to-regex 方法。

关于java - 在 Java 中使用 glob 匹配路径字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24677662/

相关文章:

php: 我可以在没有完整路径的情况下压缩 glob 文件吗?

c++ - 用什么代替 C++ Qt 上的 glob?

java - 有没有办法在单击 recyclerView 项目时将其移动到底部?

java - 仅使用 javascript 检查 jsp 中的用户名可用性

node.js - 里姆拉夫。递归删除除特定文件夹之外的文件和文件夹

python - glob() 收到意外的关键字参数 'recursive'

Gulp - 在排除 .min.js 和 .js.map 的同时遍历所有 .js

java - 使用 RequestDispatcher 发送变量值时出现问题

java - BearerTokenAccessDeniedHandler 类定义未找到

java - 带有 ThreadPools 或 Spring Async 的 Logback MDC