C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: C#上でのrdコマンド実行に関する質問


(過去ログ 95 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■57013 / inTopicNo.1)  C#上でのrdコマンド実行に関する質問
  
□投稿者/ ペンギン (16回)-(2011/02/09(Wed) 01:20:52)

分類:[C#] 

こんにちは

現在、C#上でコマンドプロンプトを呼び出し、rdコマンドで任意のフォルダを削除する
モジュールを作成しております。
任意のフォルダの削除権限がない場合、エラーメッセージを表示させたいのですが、
うまくいかないので質問させてください。

プログラムは以下のようになっております。
--------------------------------------------------------------------------------------
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName = System.Environment.GetEnvironmentVariable("ComSpec");
psi.RedirectStandardInput = false;
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.WorkingDirectory = "C:\\";//実行ディレクトリの設定
psi.Arguments = @"/c rd /s /q testfolder";
System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);//コマンド実行
string results = p.StandardOutput.ReadToEnd();//結果を取得
p.WaitForExit();
Console.WriteLine("results=" + results);
if (results.IndexOf("アクセスが拒否されました") != -1)
{
return "フォルダの削除権限がありません。";
}
------------------------------------------------------------------------------------

■質問内容
コマンプロンプトよりrdコマンドを実行し、任意のフォルダ削除権限がなくて
フォルダの削除に失敗した場合、「アクセスが拒否されました。」のメッセージが出力されます。

しかし、上記プログラムでフォルダ削除に失敗しても
>string results = p.StandardOutput.ReadToEnd();//結果を取得
の箇所でresults「アクセスが拒否されました。」のエラーメッセージが格納されません。

どこかプログラムで間違っているところがあるのでしょうか。

よろしくお願いします。
引用返信 編集キー/
■57014 / inTopicNo.2)  Re[1]: C#上でのrdコマンド実行に関する質問
□投稿者/ Hongliang (757回)-(2011/02/09(Wed) 06:27:22)
StandardError の方に出力されてるんじゃないですか?
引用返信 編集キー/
■57017 / inTopicNo.3)  Re[1]: C#上でのrdコマンド実行に関する質問
□投稿者/ shu (419回)-(2011/02/09(Wed) 08:55:46)
No57013 (ペンギン さん) に返信

DirectoryInfo.Deleteは使えませんか?
引用返信 編集キー/
■57028 / inTopicNo.4)  Re[2]: C#上でのrdコマンド実行に関する質問
□投稿者/ ペンギン (17回)-(2011/02/09(Wed) 13:08:57)
すみません。
仰る通りでした。

StandardErrorの方に出力されていました。
ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -