gpt4 book ai didi

java - DirectoryWalker 过滤器文件夹中包含 xml 文件

转载 作者:行者123 更新时间:2023-12-01 04:44:39 24 4
gpt4 key购买 nike

我正在使用 DirectoryWalker,我想创建一个过滤器来列出所有包含 xml 文件的目录。我不想列出文件本身,而只想列出它们的直接父级?如果一个目录只有目录我不想列出它。您认为可行吗?

我一直在查看样本 http://people.apache.org/~jochen/commons-io/site/apidocs/org/apache/commons/io/DirectoryWalker.html#filter但我没有找到一个可以满足我要求的。

public class ExtractedDirectoryWalker extends DirectoryWalker {

public ExtractedDirectoryWalker() {
super();
}

public ArrayList<File> getDirectories(File startDirectory) throws IOException {
ArrayList<File> dirs = new ArrayList<File>();
walk(startDirectory, dirs);
return dirs;
}

@Override
protected boolean handleDirectory(File directory, int depth,
Collection results) {
results.add(directory);
return true;
}

}

来自另一个类(class):

List<File> directories = new ExtractedDirectoryWalker()
.getDirectories(outputFolder.toFile());

最佳答案

我还没有测试过代码,但我认为这应该可行:

private static final FileFilter filter = new XMLChildFileFilter();

public ExtractedDirectoryWalker() {
super(filter, -1);
}
private static class XMLChildFileFilter implements FileFilter {
@Override
public boolean accept(File file) {
if(file == null || !file.isDirectory() || !file.canRead()) {
return false;
}
File[] files = file.listFiles();
for(File f : files) {
if(f.isFile()) {
if(FilenameUtils.getExtension(f.getName()).equals("xml"))
return true;
}
}
return false;
}
}

关于java - DirectoryWalker 过滤器文件夹中包含 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16021520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com