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

C#でフォルダ内のファイルを再帰的に一覧表示する方法

C#でディレクトリ内のファイルを再帰的に取得する

C#でフォルダ内のファイル一覧を取得するには、Directory.GetFiles メソッドに SearchOption.AllDirectories を指定します。このオプションを使うことで、サブフォルダも含めたすべてのファイルを再帰的に検索できます。

基本的な使い方

まず、ファイルを取得したい対象ディレクトリを設定します。

string[] myFiles = Directory.GetFiles("D:\\New\\", "*.*", SearchOption.AllDirectories);

第1引数に対象フォルダのパス、第2引数に検索パターン("*.*" を指定するとすべてのファイルが対象)、第3引数に検索オプションを渡します。

サンプルコード

次の例は、上記のディレクトリからファイルの一覧を取得して表示するプログラムです。

using System;
using System.Linq;
using System.IO;
class Program {
    static void Main() {
        string[] myFiles = Directory.GetFiles("D:\\New\\", "*.*", SearchOption.AllDirectories);
        foreach (string res in myFiles) {
            Console.WriteLine(res);
        }
    }
}

実行結果

このコードを実行すると、指定したフォルダ内(サブフォルダを含む)のすべてのファイルが以下のように出力されます。

D:\New\one.txt
D:\New\two.html
D:\New\nature.png

補足:.NET Core / .NET 5以降での注意点

SearchOption.AllDirectories は、アクセス権限のないフォルダが存在すると例外が発生して処理が中断される場合があります。.NET Core 以降では、より柔軟に制御できる EnumerationOptions クラスの使用が推奨されています。

var options = new EnumerationOptions {
    RecurseSubdirectories = true,
    IgnoreInaccessible = true
};
string[] myFiles = Directory.GetFiles("D:\\New\\", "*.*", options);

IgnoreInaccessible = true を指定すると、アクセスできないフォルダを自動的にスキップして処理を続行できるため、実運用のアプリケーションでは特に便利です。

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

    この記事では、Javaを使って指定したディレクトリ内のすべてのファイルを再帰的に一覧表示するプログラムを解説します。サブディレクトリの中にあるファイルまで含めて取得できるため、フォルダ全体の内容を把握したい場合に便利なテクニックです。 前提となるディレクトリ構成 Dドライブ直下に「ExampleDirectory」というフォルダがあり、その中に7つのファイルと2つのサブディレクトリが格納されていると仮定します。 各サブディレクトリの内容は以下の通りです。 SampleDirectory1:SampleFile1.txt と SampleFile2.txt の2つのファイルを含みます。 Sa

  2. 【初心者向け】Linuxでディレクトリの内容を一覧表示する3つの便利コマンド

    Linuxには、さまざまなタスクを実行するためのコマンドが数多く用意されています。その中でも、ファイルマネージャーのようにディレクトリの内容を一覧表示したい場合に使えるコマンドがいくつか存在します。本記事では、代表的な3つのコマンド「ls」「dir」「vdir」の使い方と特徴をわかりやすく解説します。 ls:最も定番の一覧表示コマンド ディレクトリの内容を一覧表示する際に最もよく使われるのがlsコマンドです。デフォルトでは、ファイルやディレクトリが列状に整形されて表示され、種類ごとに異なる色で区別されます。 ユーザーが作成したディレクトリは名前がシングルクォート()で囲まれて表示され、シ