C#には便利な機能があり、自分で関数の再帰呼び出し処理を書かなくても配下のフォルダ内すべてのファイルを取得す処理を書くことができます。
サンプルコード
指定されたフォルダ内を再帰的に検索して、全てのファイルを表示するサンプルコードです。
1.Directory.GetFilesメソッドを使用
オプションSearchOption.AllDirectoriesを指定することでメソッド内で再帰的にファイル取得をおこなってくれます。
using System;
using System.IO;
class Program
{
static void Main()
{
string folderPath = @"C:\path\to\your\directory";
ProcessFiles(folderPath);
}
static void ProcessFiles(string folderPath)
{
try
{
// 指定されたフォルダ内のすべてのファイルを取得
string[] files = Directory.GetFiles(folderPath, "*", SearchOption.AllDirectories);
foreach (var file in files)
{
// ★ここを変更すればファイルに対して処理を行えます
Console.WriteLine(file);
}
}
catch (Exception ex)
{
Console.WriteLine("エラーが発生しました: " + ex.Message);
}
}
}
2.自分で関数の再帰呼び出し処理を実装する
using System;
using System.IO;
class Program
{
static void Main()
{
string folderPath = @"C:\path\to\your\directory";
ProcessDirectory(folderPath);
}
static void ProcessDirectory(string folderPath)
{
try
{
// 指定されたフォルダ内のすべてのファイルを取得
string[] files = Directory.GetFiles(folderPath, "*");
foreach (var file in files)
{
// ★ここを変更すればファイルに対して処理を行えます
Console.WriteLine(file);
}
// 指定されたフォルダ内のすべてのサブフォルダを取得し、再帰的に処理
string[] subDirectories = Directory.GetDirectories(folderPath);
foreach (var directory in subDirectories)
{
ProcessDirectory(directory);
}
}
catch (Exception ex)
{
Console.WriteLine("エラーが発生しました: " + ex.Message);
}
}
}
まとめ
本記事では、C#を使用して指定フォルダとサブフォルダ内にあるファイル一覧を表示する方法を紹介しました。