java - 如何获取除某些子目录之外的所有子目录?

标签 java fileutils apache-commons-io filefilter

我有一个在网页的 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/

相关文章:

javascript - Node 开发服务器和 Spring Boot 应用程序之间的跨源请求被阻止

java - 如何在 Swing java 中的 JTable 行中添加按钮

java - FileUtils.copyFile 对大文件失败

java - 替换已弃用的 Java 方法

java - Apache FileUtils 列表文件

java - 来自配置 yaml 的绑定(bind)映射

Spring 表达式读取文件内容

java - 为什么 ReversedLinesFileReader 这么慢?

java.util.zip.ZipException : invalid stored block lengths

java - Android 声音不在启动画面中播放