Java 获取包含特定字符的所有文件夹
我正在尝试获取其名称包含特定字符的所有文件夹和子文件夹(目录不是文件)。我正在使用一个自定义IOFileFilter,但似乎被忽略了Java 获取包含特定字符的所有文件夹,java,apache-commons,Java,Apache Commons,我正在尝试获取其名称包含特定字符的所有文件夹和子文件夹(目录不是文件)。我正在使用一个自定义IOFileFilter,但似乎被忽略了 Collection<File> myFolders = FileUtils.listFilesAndDirs(new File(myFilesPath), new NotFileFilter(TrueFileFilter.INSTANCE), new CustomDirectoryFilter()); 我只得到根文件夹。尝试使用filewalker
Collection<File> myFolders = FileUtils.listFilesAndDirs(new File(myFilesPath), new NotFileFilter(TrueFileFilter.INSTANCE), new CustomDirectoryFilter());
我只得到根文件夹。尝试使用filewalker API
Files.walk(Paths.get("/my/path/here")).filter(x->!Files.isRegularFile(x)).filter(x->x.toString().contains("@")).forEach(System.out::println);
使用公共io文件utils
List<File> ff = (List<File>) FileUtils.listFilesAndDirs(new File("/Users/barath/elasticsearch-6.2.4"), new NotFileFilter(TrueFileFilter.INSTANCE), DirectoryFileFilter.DIRECTORY);
for(File f : ff){
if(f.toString().contains("@"))
System.out.println(f.toString());
}
List ff=(List)FileUtils.listFilesAndDirs(新文件(“/Users/barath/elasticsearch-6.2.4”)、新NotFileFilter(TrueFileFilter.INSTANCE)、DirectoryFileFilter.DIRECTORY);
用于(文件f:ff){
如果(f.toString().包含“@”)
System.out.println(f.toString());
}
您确定某些文件包含“@”吗?您能在该筛选器中打印一些调试以验证该假设吗?是的,我已经设置了调试器,调试器确实到达了筛选器,并为特定文件返回true。我认为筛选器本身阻止了在子文件夹中进一步搜索。FileUtils.listFilesAndDirs(新文件(dir),new NotFileFilter(TrueFileFilter.INSTANCE),DirectoryFileFilter.DIRECTORY)
尝试一次。我已经尝试过了,但这会返回所有目录,而不仅仅是名称中包含模式的目录。这是一个基于JAVA 6和Ant的旧项目,因此我无法使用流,甚至添加新的依赖项都需要额外的努力。谢谢您的回复。
List<File> ff = (List<File>) FileUtils.listFilesAndDirs(new File("/Users/barath/elasticsearch-6.2.4"), new NotFileFilter(TrueFileFilter.INSTANCE), DirectoryFileFilter.DIRECTORY);
for(File f : ff){
if(f.toString().contains("@"))
System.out.println(f.toString());
}