java - 在Java文件夹中递归查找文件/目录
问题描述
我想获取包含某个正则表达式的某个文件夹的所有子订单(不仅是直接子订单,还有所有子子订单等-> 递归)。这应该尽可能高效。
正则表达式由用户输入。例如,他输入“hello”,然后一个文件夹的所有子订单 (myFolder)
应该列出其中包含正则表达式“.* hello .*”。更具体地说,应该返回找到的文件夹的路径。
我已经做了一些研究并找到了 nio.file,但我不确定在这种情况下 nio.file 是否比 io.file 快。我对这整个话题都很陌生,所以如果我说了什么不正确的话,请原谅。我使用 Java 11。
例如,我还发现了一个这样的函数,它可以工作:
Stream s = Files.find(
Paths.get("myFolder"),
Integer.MAX_VALUE,
(path, basicFileAttributes) -> {
File f = path.toFile();
return f.getName().matches(".*'myRegexHere'.*") && f.isDirectory() && !f.isHidden();
});
但我不确定是否有更有效的功能/方法或更有效的方法。我愿意接受建议和想法。
编辑:
有没有办法从搜索中排除某些文件夹?
解决方案
推荐阅读
- r - R:如何根据第一个字符重新编码值 0|0 vs 1|0 vs 0|1 vs 1|1
- mysql - 无法恢复从属复制
- python - 如何计算熊猫列中字符串中的点、分号和数字
- python - 如何将 python 的 int 与 NumPy 一起使用?
- c# - 实体框架核心批量扩展:BulkInsertOrUpdate
- javascript - 如何获取按钮并将事件应用到它们
- java - 使用 Java 8 为类中任意数量的字段构建比较器逻辑
- c++ - 在 Node.js C++ 插件中,永远不会调用 SetWindowsHookEx 的回调
- r - 根据文件名将R中的多个csv与索引合并
- azure-sql-database - 使用 Dataverse (CDS) 导入/导出数据