Windowsアプリケーションの処理において、フォルダ内のファイル一覧を取得して、条件に当てはまるファイルに対して処理を行うことは、良くあると思います。本記事では、フォルダ内にあるファイルの一覧を列挙する方法を紹介します。
サンプルコード1:指定フォルダの直下のみ
このプログラムは、指定されたフォルダ内のすべてのファイル名をコンソールに表示します。
using System;
using System.IO;
class Program
{
static void Main()
{
// フォルダのパスを指定
string folderPath = @"C:\path\to\your\folder";
// 指定したフォルダ内のファイル一覧を取得
string[] files = Directory.GetFiles(folderPath);
// 取得したファイル名をコンソールに表示
foreach (string file in files)
{
Console.WriteLine(file);
}
}
}
フォルダ内のファイル一覧の取得には Directory.GetFiles メソッドを使用します。このメソッドは、指定されたパスのフォルダ内にあるすべてのファイルのパスを文字列の配列として返します。
サンプルコード2:指定した拡張子のみ取得
このプログラムは、指定されたフォルダ内のファイルのうち、拡張子 .txt のファイルの一覧を表示します。
using System;
using System.IO;
class Program
{
static void Main()
{
// フォルダのパスを指定
string folderPath = @"C:\path\to\your\folder";
// 指定したフォルダ内のファイル一覧を取得
string[] files = Directory.GetFiles(folderPath, "*.txt");
// 取得したファイル名をコンソールに表示
foreach (string file in files)
{
Console.WriteLine(file);
}
}
}
フォルダ内のファイルのなかで、拡張子を指定してファイル一覧を取得する場合は、 Directory.GetFiles メソッドの第2引数に拡張子を指定します。
サンプルコード3:サブフォルダを含めた全てのファイル
このプログラムは、指定されたフォルダとサブフォルダにある全てのファイル名(拡張子は何でもよい)をコンソールに表示します。
using System;
using System.IO;
class Program
{
static void Main()
{
// フォルダのパスを指定
string folderPath = @"C:\path\to\your\folder";
// 指定したフォルダ内のファイル一覧を取得
string[] files = Directory.GetFiles(folderPath, "*", SearchOption.AllDirectories);
// 取得したファイル名をコンソールに表示
foreach (string file in files)
{
Console.WriteLine(file);
}
}
}
指定フォルダとサブフォルダ内のすべてを検索対象としたい場合、Directory.GetFilesの第3引数にSearchOption.AllDirectoriesを指定します。また、拡張子を限定しない場合は、Directory.GetFiles メソッドの第2引数に “*” を指定します。
まとめ
本記事では、フォルダ内にあるファイルの一覧を列挙する方法を紹介しました。Directory.GetFilesメソッドを使用することにより、サブフォルダを含めたフォルダ内のファイルの検索も楽に行うことができますので活用しましょう。