0

特定のフォルダ内のファイルをループせずに反復する最良の方法は何ですか? つまり、for ループは、すべてのファイルが 1 回チェックされると終了します。

私のコード例(ループあり):

        File dir = new File(svnClient.getDestinationPath().getAbsolutePath());
          for (File child : dir.listFiles())
          {
            report.report("File name: " + child.getName());
          }
4

2 に答える 2

3

再帰:

public void myMethod(){
     File dir = ...;
     List<File> files = Arrays.asList(dir.listFiles());
     recurse(files.iterator());
}

private void recurse(Iterator<File> iterator){
     if (iterator.hasNext()){
          File file = iterator.next();
          report.report(file.getName());
          recurse(iterator);
     }
}
于 2012-11-27T13:46:37.773 に答える
0

メソッドを悪用し、listFiles(FileFilter filter)ロジックをコールバックに入れ、戻り値を無視します。

File dir = ...
dir.listFiles(new FileFilter() {
    boolean accept(File child) {
        report.report("File name: " + child.getName());
        return false;
    }
});
于 2012-11-27T16:44:59.200 に答える