Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取包含特定字符的所有文件夹_Java_Apache Commons - Fatal编程技术网

Java 获取包含特定字符的所有文件夹

Java 获取包含特定字符的所有文件夹,java,apache-commons,Java,Apache Commons,我正在尝试获取其名称包含特定字符的所有文件夹和子文件夹(目录不是文件)。我正在使用一个自定义IOFileFilter,但似乎被忽略了 Collection<File> myFolders = FileUtils.listFilesAndDirs(new File(myFilesPath), new NotFileFilter(TrueFileFilter.INSTANCE), new CustomDirectoryFilter()); 我只得到根文件夹。尝试使用filewalker

我正在尝试获取其名称包含特定字符的所有文件夹和子文件夹(目录不是文件)。我正在使用一个自定义IOFileFilter,但似乎被忽略了

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());
        }