【C#】フォルダ内のテキストファイルの中身をひとつのファイルに全部書き込みするプログラム
プログラムのおすそわけ
AtCoderのテストケース漁ってたら拡張子のついてないテキストデータが小分けで大量に出てきたので、
一個ずつ拡張子をつけて開くのも面倒くさいからひとつに合体させるプログラムを作ってみた。
サンプルプログラム
static void Main(string[] args) { Console.WriteLine("フォルダを読み込み、フォルダ内のテキストデータをマージします。"); Console.WriteLine("読み込みたいフォルダパスを入力して何かキーを押して下さい。"); string DesktopFolderPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop) + @"\MergedText"; string FolderPath = ""; FolderPath = Console.ReadLine(); Console.WriteLine("フォルダの読み込みを開始します。"); Console.WriteLine("フォルダ内のテキストデータをマージしています。"); string[] files = System.IO.Directory.GetFiles(FolderPath, "*", System.IO.SearchOption.AllDirectories); System.IO.Directory.CreateDirectory(DesktopFolderPath); foreach(var item in files) { using (StreamWriter sw = new StreamWriter(DesktopFolderPath + @"\MergedText.txt", true,Encoding.GetEncoding("utf-8"))) { using (StreamReader sr = new StreamReader(item)) { string s = sr.ReadToEnd().Trim(); sw.WriteLine(s); } } } Console.WriteLine("テキストデータのマージが完了しました。何かキーを押して終了して下さい。"); Console.ReadKey(); return; }
解説
まとめたいデータが置かれているフォルダパスを入力すると、デスクトップに「MergedText」というフォルダができる。
名前は正直適当なので恥ずかしい( ˘ω˘ )
その中に、データが順番に書き込みされたテキストデータが入っている。
まとめたいデータは拡張子がなくてもOK。