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(); } } }
🔻 テキストエディタのタブを保持する設定 ※ 変換は全てコピー > 削除 > 貼り付け