ディレクトリツリーを走査を再興

昔、再帰関数で書いたのかもしれないけど、改めて再帰関数、結局これしか思いつかないけど
久々に for 文を書いてみました。(Java8 になってから、本当に for文を書く機会が減った。。。)

要の再帰関数は、、

private List<File> parse(File file, List<File> list){
   list.add(file);
   if (file.isDirectory()){
      for(File f:file.listFiles()){
         parse(f, list);
      }
   }
   return list;
}

という誰でもすぐに思いつくものです。File の List を取得することにすれば、
List → Stream や、好きなことをできるので、これだけでもいいのですが、
Consumer の形も魅力的です。

private void parse(File file, Consumer<File> c){
   c.accept(file);
   if (file.isDirectory()){
      for(File f:file.listFiles()){
         parse(f, c);
      }
   }
}

そこで以下のとおり全体を書きました。

oboe2uran.hatenablog.com