2017-04-16 14 views
1

フォルダ内のすべてのファイル名でテキストファイルを作成したかったのです。 だから私はこのように行きました:C#でcmdを使ってテキストファイルを作成するには?

Process getNamesProcess = new Process(); 
getNamesProcess.StartInfo.FileName = @"c:\**my folder path**"; 
getNamesProcess.StartInfo.Arguments = "dir /b >> names.txt"; 
getNamesProcess.Start(); 

しかし、これは私のために動作しません。プロセスは私にフォルダを開きます。それ以上のことはありません。私は何を変えるべきですか?

+0

注: ">>"は既存のファイルに追加されます。おそらくあなたが望むものではないでしょう。 ">"は既存のファイルを切り捨てます。 –

答えて

1

フォルダパスをStartInfo.FileNameに配置することで達成したいことはわかりませんが、そこに入れる必要があるのはフルパスcmd.exeです。

StartInfo.Argumentsには、"/C dir /b " + my_folder_path + " >> names.txt"とする必要があります。

/Cの詳細については、コマンドプロンプトを開いてhelp cmdと入力してください。

1

より良い方法は、次のようになります。

File.WriteAllLines("names.txt", Directory.GetFiles("c:\\path").Select(Path.GetFileName)); 

FileDirectoryPathクラスはSystem.IO名前空間にあります。

+0

答えてくれてありがとう、これは名前だけでなく、ファイルの完全なパスを持つファイルを作成します。 – Adas

+1

出力ファイル名のみの回答を編集しました。 –

関連する問題