Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでディレクトリ内のすべてのファイルを再帰的に一覧表示する方法

この記事では、Javaを使って指定したディレクトリ内のすべてのファイルを再帰的に一覧表示するプログラムを解説します。サブディレクトリの中にあるファイルまで含めて取得できるため、フォルダ全体の内容を把握したい場合に便利なテクニックです。

前提となるディレクトリ構成

Dドライブ直下に「ExampleDirectory」というフォルダがあり、その中に7つのファイルと2つのサブディレクトリが格納されていると仮定します。

Javaでディレクトリ内のすべてのファイルを再帰的に一覧表示する方法

各サブディレクトリの内容は以下の通りです。

  • SampleDirectory1:SampleFile1.txt と SampleFile2.txt の2つのファイルを含みます。
  • SampleDirectory2:SampleFile2.txt と SampleFile3.txt の2つのファイルを含みます。

サンプルプログラム

次のJavaプログラムは、「ExampleDirectory」ディレクトリ内のすべてのファイル名を再帰的に取得してコンソールに出力します。

import java.io.File;
import java.io.IOException;
public class ListOfFiles {
    public static void listOfFiles(File dirPath){
        File filesList[] = dirPath.listFiles();
        for(File file : filesList) {
            if(file.isFile()) {
                System.out.println("File path: "+file.getName());
            } else {
                listOfFiles(file);
            }
        }
    }
    public static void main(String args[]) throws IOException {
        // ディレクトリを表すFileオブジェクトを生成
        File file = new File("D:\\ExampleDirectory");
        // すべてのファイルとディレクトリを一覧表示
        listOfFiles(file);
    }
}

実行結果

File path: cassandra_logo.jpg
File path: cat.jpg
File path: coffeescript_logo.jpg
File path: javafx_logo.jpg
File path: SampleFile1.txt
File path: SampleFile2.txt
File path: SampleFile4.txt
File path: SapmleFile3.txt
File path: SampleHiddenfile1.txt
File path: SampleHiddenfile2.txt
File path: SampleHiddenfile3.txt

コードのポイント

  • listFiles()メソッド:対象ディレクトリ内のファイルおよびサブディレクトリを、Fileオブジェクトの配列として返します。
  • isFile()メソッド:要素が通常のファイルかどうかを判定します。ファイルであればgetName()で名前を取得して出力します。
  • 再帰呼び出し:要素がディレクトリだった場合は、自分自身のlistOfFiles()メソッドを再度呼び出すことで、サブディレクトリの中身も順番に走査します。

なお、listFiles()は隠しファイルも含めて取得するため、実行結果には「SampleHiddenfile」で始まる隠しファイルも表示されています。存在しないパスを指定するとlistFiles()がnullを返すため、実際の開発ではnullチェックを追加しておくとより安全です。

  1. Javaでディレクトリ内のjpgファイル一覧を取得する方法

    FilenameFilterインターフェースを使った方法Fileクラスのlist(FilenameFilter filter)メソッドは、現在のFileオブジェクトが表すパスに存在するすべてのファイルおよびディレクトリの名前をString配列として返します。ただし、返される配列には、指定したフィルター条件を満たすファイル名のみが含まれます。FilenameFilterは、次の単一のメソッドを持つJavaのインターフェースです。accept(File dir, String name)拡張子に基づいてファイル名を取得したい場合は、このインターフェースを実装したクラスを作成し、そのインスタンスをF

  2. 【Java入門】ディレクトリ内のすべてのファイルを再帰的に削除するプログラムの書き方

    この記事では、Javaを使って指定したディレクトリ内のすべてのファイルを再帰的に削除する方法を解説します。サブディレクトリの中にあるファイルも含めて、ファイルだけを削除し、ディレクトリ構造自体は残すプログラムです。前提となるディレクトリ構成まず、Dドライブ直下に ExampleDirectory というフォルダがあり、その中に7つのファイルと2つのディレクトリが含まれているものと仮定します。SampleDirectory1:SampleFile1.txt と SampleFile2.txt の2つのファイルを含むSampleDirectory2:SampleFile2.txt と Sample