プログラム学習室 http://studyhallweb.com/

Java学習記: ファイルリスト(2)

ファイルリスト(サブディレクトリ含む)

import java.io.*;

public class S012filelist {

  private static int filelist(String sDir) {

    int iFiles = 0;   // ファイル数
    System.out.println("");   // フォルダ毎に空白行を挿入

    try {
      File dir = new File(sDir);
      if (!dir.exists()) {
        throw new Exception();
      }

      File[] files = dir.listFiles();
      int i;
      for( i=0; i < files.length; i++ ) {
        if (files[i].isFile())
          // ファイルのとき
          System.out.println(sDir + "\\" + files[i].getName());
        else if (files[i].isDirectory()) {
          // ディレクトリのとき再帰呼び出し
          int j = filelist(sDir + "\\" + files[i].getName());
          iFiles += j;
        }
      }
      iFiles += i;
      return iFiles;
    }
    catch(Exception e) {
      return 0;
    }
  }

  public static void main(String[] args) {
    int i = filelist(args[0]);
    System.out.println("ファイル数 = " + i );
  }
}
				

ディレクトリのときに再帰呼び出しすることによってサブディレクトリの中まで検索します。