|
分類:[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「アクセスが拒否されました。」のエラーメッセージが格納されません。
どこかプログラムで間違っているところがあるのでしょうか。
よろしくお願いします。
|