我有一个在网页的 selectMenu 中使用的目录列表。
该列表包含特定目录下的所有子目录,使用以下 java 代码检索..
File directory = new File("C:\\myHomeDirectory");
myDirectories = directory.listFiles((FileFilter) DirectoryFileFilter.DIRECTORY);
我想过滤 myDirectories 列表以排除不包含特定文件(比如名为 testFolder)的子目录。换句话说,我希望 myDirectories 仅包含具有名为 testForder 的子文件夹的文件。如何做到这一点?
最佳答案
我想,您必须实现自己的 FileFilter。
是这样的:
class CustomDirectoryFilter implements FileFilter {
private String allowedFileName = "testFolder";
@Override
public boolean accept(File pathname) {
if (pathname.isDirectory()) {
File[] subFiles = pathName.listFiles();
for (File file : subFiles){
if (file.getName().equals(allowedFileName)){
return true;
}
}
}
return false;
}
}
解释: 对于 C:\myHomeDirectory 中的每个文件,测试给定文件是否为目录。如果是,获取其中所有文件的数组并测试这些文件中的任何一个是否包含您的文件。如果找到这样的文件,允许目录成为 myDirectories
的一部分我现在没有机会测试此示例代码是否可以编译,但我希望它能帮助您找到解决方案。
关于java - 如何获取除某些子目录之外的所有子目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20679799/