Проблема чтения подкаталогов с помощью FileUtils.listfiles - PullRequest
0 голосов
/ 04 мая 2010

Я пытаюсь заставить все подкаталоги делать это:

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

К сожалению, возвращенный список пуст.

С другой стороны, если я делаю это, это работает:

File[] mainLevelFiles = repositoryDir.listFiles();

Кто-нибудь знает, что не так с Apache FileUtils.listFiles (...)?

1 Ответ

1 голос
/ 04 мая 2010

Проблема в том, что у вас есть два метода accept, один из которых возвращает 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]);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...