使用FileUtils.listfiles读取子目录时出现问题

时间:2010-05-04 14:20:18

标签: java file

我正在尝试让所有子目录执行此操作:

   File repositoryDir = new File(_props.getProperty("files.repository.path"));

IOFileFilter filter = new IOFileFilter() {
      public boolean accept(File file) {
          //return file.isDirectory();
       return true;
      }

   @Override
   public boolean accept(File arg0_, String arg1_) {
    // TODO Auto-generated method stub
    return false;
   }
  };

FileUtils.listFiles(repositoryDir,filter,null);

不幸的是,返回的List是空的。

另一方面,如果我这样做,它可以工作:

File[] mainLevelFiles = repositoryDir.listFiles();

任何人都知道Apaches FileUtils.listFiles(...)有什么问题吗?

1 个答案:

答案 0 :(得分:1)

问题是你有两个接受方法,一个返回true,一个返回false。删除带有额外字符串的字符串,使其如下所示:

IOFileFilter filter = new AbstractFileFilter() {
  public boolean accept(File file) {
    return file.isDirectory();
  }
};

或者,您可以使用Apache的DirectoryFileFilter

 File dir = new File(_props.getProperty("files.repository.path"));
 String[] files = dir.list( DirectoryFileFilter.INSTANCE );
 for ( int i = 0; i < files.length; i++ ) {
     System.out.println(files[i]);
 }