サブフォルダのファイル名一覧をテキストで吐き出すコマンドラインのEXEファイルを作っています。
引数は、3つあり、
0. 検索するフォルダ
0. 拡張子
0. 出力先
としています。
ここでコンパイル後のEXEを実行すると下記のようなエラーが出ます。
{"2 番目のパス フラグメントを ドライブ名または UNC 名にすることはできません。\r\nパラメーター名:path2"}
見よう見まねで作っているので、ほとんどC#についての経験がないのですが、
これはコンパイラ(VS)の問題でしょうか?
すみませんが、ご教授願います。
cs
1 2using System; 3using System.Collections.Generic; 4using System.Diagnostics; 5using System.IO; 6using System.Linq; 7 8namespace FileListSpeedComparison 9{ 10 internal class Program 11 { 12 // 文字コード 13 private const string Encode = "shift_jis"; 14 15 static void Main(string[] args) 16 { 17 if (args.Length == 0) 18 { 19 Console.WriteLine("not one"); 20 return; 21 } 22 23 for (int i = 0; i < args.Length; ++i) 24 Console.Write("{0}番目のコマンドライン引数は{1}です。\n", i, args[i]); 25 26 string FolderPass = args[0]; 27 string OutFile = args[1]; 28 string Extension = args[2]; 29 30 IEnumerable<string> files 31 = Directory.EnumerateFiles( 32 FolderPass, // 検索開始ディレクトリ 33 Extension,// 検索パターン 34 SearchOption.AllDirectories); // サブ・ディレクトも含める 35 Console.WriteLine(files.Count() + "個のファイルを読み込みます。"); 36 37 StreamWriter sw = new StreamWriter(OutFile, // 出力先ファイル名 38 true, // 追加書き込み 39 System.Text.Encoding.GetEncoding("Shift_JIS")); // 文字コード 40 41 Console.SetOut(sw); // 出力先(Outプロパティ)を設定 42 43 foreach (string file in files) 44 { 45 Console.WriteLine(file); 46 } 47 } 48 } 49}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。