特定のフォルダにあるファイル名の一覧を取得したい場面は多々あるものの、いつも忘れてしまうので備忘録として残しておこう。
ファイル名の一覧を取得する
System.IO.Directory クラスの GetFiles メソッドを使用します。
こんな感じで使います。
foreach (var file in Directory.GetFiles(フォルダパス))
{
ファイル毎の処理
}
ファイルを絞って取得する
第2引数で、検索するファイルを絞り込むことが出来ます。
拡張子が、”.txt”のファイルだけを取得する場合は、次のように書きます。
foreach (var file in Directory.GetFiles(フォルダパス, "*.txt"))
{
ファイル毎の処理
}
「*」はワイルドカードと言って、任意の0文字以上の文字列と一致させる場合に使用します。
文字にすると分かりにくいですが、つまりは、「前半のファイル名はなんでも良いよ」ということです。
サブフォルダからも取得する
さらに、第3引数で、指定したフォルダ内のファイルだけを対象にするか、サブフォルダ内のファイルも対象に含めるかを指定することが出来ます。
- SearchOption.TopDirectoryOnly ・・・ 指定フォルダにあるファイルのみ取得
- SearchOption.AllDirectories ・・・ サブフォルダにあるファイルも取得
// サブフォルダも含め、フォルダ内から".txt"ファイルを取得する
foreach (var file in Directory.GetFiles(フォルダパス, "*.txt", SearchOption.AllDirectories))
{
ファイル毎の処理
}
フォルダ名の一覧を取得する
フォルダ名の一覧を取得したい場合は、GetDirectories メソッドを使います。
コメント