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

C#でディレクトリ内の全ファイル・サブディレクトリのファイルとそのサイズを取得する方法


C#では、Directory.GetFilesメソッドを使用することで、指定したディレクトリ内のファイルを簡単に取得できます。

Directory.GetFilesメソッドとは

Directory.GetFilesは、指定された検索パターンに一致するすべてのファイル名(フルパスを含む)を返すメソッドです。オプションを指定することで、サブディレクトリまで含めた検索も可能になります。

  • 検索パターンの「*(アスタリスク)」は、その位置にある0文字以上の任意の文字列に一致します。
  • SearchOption.TopDirectoryOnly:最上位のディレクトリのみを検索します。
  • SearchOption.AllDirectories:最上位のディレクトリとすべてのサブディレクトリを検索します。
  • FileInfoクラスを使用すると、ファイルサイズ(Length)やファイル名などの詳細情報を取得できます。

例1:サブディレクトリも含めてすべてのファイルを取得する

SearchOption.AllDirectoriesを指定すると、ルートフォルダ以下のすべての階層からファイルが検索されます。

static void Main (string[] args) {
    string rootPath = @"C:\Users\Koushik\Desktop\TestFolder";
    var files = Directory.GetFiles(rootPath, "*.*", SearchOption.AllDirectories);

    foreach (string file in files) {
        Console.WriteLine(file);
    }
    Console.ReadLine ();
}

実行結果

C:\Users\Koushik\Desktop\TestFolder\TestFolderMain\TestFolderMain.txt
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 1\TestFolderMain1.txt
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 2\TestFolderMain2.txt
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 2\TestFolderMainSubDirectory\TestFolderSubDirectory.txt

例2:最上位ディレクトリのみからファイルを取得する

SearchOption.TopDirectoryOnlyを指定すると、サブディレクトリは検索対象にならず、指定したフォルダ直下のファイルだけが取得されます。

static void Main (string[] args) {
    string rootPath = @"C:\Users\Koushik\Desktop\TestFolder";
    var files = Directory.GetFiles(rootPath, "*.*", SearchOption.TopDirectoryOnly);

    foreach (string file in files) {
        Console.WriteLine(file);
    }
    Console.ReadLine ();
}

実行結果

C:\Users\Koushik\Desktop\TestFolder\Topdirectory.txt

例3:各ファイルのサイズを取得して表示する

取得したファイルパスをFileInfoオブジェクトに渡すことで、Lengthプロパティからファイルサイズ(バイト数)を取得できます。Path.GetFileNameを使えば、パスを除いたファイル名だけを表示することも可能です。

static void Main (string[] args) {
    string rootPath = @"C:\Users\Koushik\Desktop\TestFolder";
    var files = Directory.GetFiles(rootPath, "*.*", SearchOption.AllDirectories);

    foreach (string file in files) {
        var info = new FileInfo(file);
        Console.WriteLine($"{ Path.GetFileName(file) }: { info.Length } bytes");
    }
    Console.ReadLine ();
}

実行結果

Topdirectory.txt: 0 bytes
TestFolderMain.txt: 0 bytes
TestFolderMain1.txt: 10 bytes
TestFolderMain2.txt: 20 bytes

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

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

  2. Macでファイルやフォルダを検索する方法まとめ|使えるすべての手段を徹底解説

    macOSは、直感的なナビゲーションと整理されたファイルシステムを備えたオペレーティングシステムです。ITに詳しくない方やWindows環境からの移行者でも、ファイル・フォルダ・アプリの場所を素早く把握できるよう設計されています。 実際、macOSにはファイル名や日付、ファイル形式などを手がかりに目的のファイルを見つけられるネイティブ機能が数多く用意されています。この記事では、Macでファイルを検索するあらゆる方法に加えて、誤って削除したファイルを復元する方法まで詳しく解説します。 方法 最も役立つシーン 「最近の項目」フォルダを確認する 最近開いた・作成したファイルを探していると