C# ファイルの一覧を取得するサンプル

C#のファイルの一覧を取得するサンプルです。

目次

サンプル GetFilesメソッドで取得する
  EnumerateFilesメソッドで取得する

GetFilesメソッドで取得する

public static string[] GetFiles(string path, string searchPattern, SearchOption searchOption)
  • パスを含むファイル名を配列で取得します。
  • 1つめの引数は、パスを指定します。
  • 2つめの引数は、ファイル名の指定ができます。アスタリスク(*)とワイルドカード(?)に対応しています。アスタリスクを指定すると全ファイルになります。
  • 3つめの引数は、サブディレクトリを含めるかを指定できます。
  • 以下は、MicrosoftのDirectory.GetFilesメソッドのリンクです。
    https://docs.microsoft.com/ja-jp/dotnet/api/system.io.directory.getfiles?view=netcore-3.1
SearchOptionの値
AllDirectories 現在のフォルダとサブフォルダも含める
TopDirectoryOnly 現在のフォルダのみ

GetFilesメソッドのサンプルです。

using System;
using System.IO;

class Test1
{
	static void Main()
	{
		string path1 = @"d:\test1";
		string[] filename;
		try
		{
			filename = Directory.GetFiles
				(path1, "*.csv", System.IO.SearchOption.AllDirectories);

			foreach (string f in filename)
			{
				Console.WriteLine(f);// 
			}
		}
		catch (Exception e)
		{
			Console.WriteLine(e.Message);
		}
	}
}

12行目は、GetFilesメソッドです。
13行目の2つめの引数は*.csvで拡張子がcsvのファイルのみ取得します。
3つめの引数は、AllDirectoriesでサブフォルダまで検索します。

結果は、以下です。
D:\Test1\test1.csv
D:\Test1\test2.csv
D:\Test1\test2\test3.csv

EnumerateFilesメソッドで取得する

public static IEnumerable<string> EnumerateFiles(string path, string searchPattern, SearchOption searchOption)
SearchOptionの値
AllDirectories 現在のフォルダとサブフォルダも含める
TopDirectoryOnly 現在のフォルダのみ

EnumerateFilesメソッドのサンプルです。

using System;
using System.IO;

class Test1
{
	static void Main()
	{
		string path1 = @"d:\test1";
		try
		{
			var filename = Directory.EnumerateFiles
				(path1, "*.csv", System.IO.SearchOption.AllDirectories);

			foreach (string f in filename)
			{
				Console.WriteLine(f); // 
			}
		}
		catch (Exception e)
		{
			Console.WriteLine(e.Message);
		}
	}
}

11行目は、EnumerateFilesメソッドです。
12行目の2つめの引数は*.csvで拡張子がcsvのファイルのみ取得します。
3つめの引数は、AllDirectoriesでサブフォルダまで検索します。

結果は、以下の文字列です。3つめは、サブフォルダにあるファイルを表示しています。
D:\Test1\test1.csv
D:\Test1\test2.csv
D:\Test1\test2\test3.csv

関連の記事

C# テキストファイルの読み書きのサンプル

△上に戻る