C# : 現在実行中のパスのファイルの一覧をテキストファイル(UTF8N)に出力する

Microsoft のドキュメントに 方法: ディレクトリとファイルを列挙する というページがあります。そこでは、Directory.EnumerateDirectories を使用したサンプルですが、 List クラスに変換してから foreach を使用しています。

foreach を使用して一覧を取得するだけならば、戻り値の IEnumerable をそのまま使用しても問題無いですが( Directory.EnumerateFiles のサンプルはそのまま使用している )、一般的な認識として List クラスを使用したほうが良いと思います。

※ IEnumerable は Interface であり、クラスを新たに作成する時に使用するものです
※ $ は、文字列補間
※ @ は、逐語的識別子として機能します

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace file_list
{
	class Program
	{
		static void Main(string[] args)
		{
			// 現在実行中のパス
			string cur_path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

			// 文字列補間 / https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/tokens/interpolated
			Console.WriteLine( $"現在実行中のパスは {cur_path} です" );

			// **********************************************
			// 一覧処理は、IEnumerable のままでも可能ですが、
			// 一般的なコードとして処理する為に 
			// List クラスを使用します
			// **********************************************
			List<string> files = new List<string>(Directory.EnumerateFiles(cur_path, "*", SearchOption.TopDirectoryOnly));

			// 情報を一括で処理する為に文字列としてメモリに保存します
			StringBuilder file_list = new StringBuilder();

			foreach ( string name in files)
			{
				// ファイルのパスを追加
				file_list.Append(name);
				// 改行を追加
				file_list.AppendLine();
			}

			// コマンドプロンプトに表示
			Console.Write(file_list.ToString());

			// 同じ内容をテキストファイルに UTF8N で書き込み
			Encoding enc = new UTF8Encoding();

			// 書き込むファイル( ドキュメントフォルダ )
			string write_path = string.Format($@"{Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)}\cs_file_list.txt");

			// 追加書き込み( false で上書き )
			try
			{
				using (StreamWriter write_file = new StreamWriter(write_path, false, enc))
				{
					// 書き込み
					write_file.Write(file_list.ToString());

					// UTF8N 確認の為
					write_file.WriteLine("日本語表示");

					// 閉じる
					write_file.Close();
				}

			}
			catch (Exception ex)
			{
				Console.WriteLine(ex.Message);
			}
			// **********************************************
			// try ブロックは
			// 編集メニュー > IntelliSense > ブロックの挿入
			// **********************************************

			Console.ReadLine();
		}
	}
}


🔻 テキストエディタのタブを保持する設定


※ 変換は全てコピー > 削除 > 貼り付け