正在使用c#中的wget進程下載圖像的應用程序。 但在下載圖像時,我提供的圖像類型即.jpeg或.png。通過wget命令。 如果在下載時傳遞.jpeg,如果.jpeg不存在,那麼我想通過進程類來捕獲錯誤「找不到文件」。但它沒有發生。如何捕獲wget進程的錯誤?
我的代碼是下面:
class TrapProcessError
{
private Process process = new Process();
public TrapProcessError()
{
}
public void Start()
{
string args= "-r -c -np --retry-connrefused --tries=0 "url containing image folder" -P C:\\Images --cut-dirs=2 -nH -A jpeg -o C:\\Images\\error.log";
string filename= "path of wget\\wget.exe";
process.StartInfo.FileName = filename;
process.StartInfo.Arguments = args;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardOutput = true;
process.ErrorDataReceived += this.ProcessErrorData;
process.OutputDataReceived += this.ProcessOutputData;
process.Start();
process.BeginErrorReadLine();
process.BeginOutputReadLine();
process.WaitForExit();
}
private void ProcessErrorData(object sender, DataReceivedEventArgs e)
{
string message = e.Data;
if (message.Contains("file not found"))
{
Console.WriteLine("Error :" +message);
process.Close();
}
}
private void ProcessOutputData(object sender, DataReceivedEventArgs e)
{
string message = e.Data;
Console.WriteLine("Output :" +message);
}
public static void Main(string[] args)
{
TrapProcessError trapProcessError= new TrapProcessError();
trapProcessError.Start();
}
}
在上面的代碼中,如果JPEG不erroe.log未來然後送「未找到文件」。但是通過流程類不會陷阱錯誤,即在ProcessErrorData中,e.Data始終爲空。那麼我怎麼能捕獲錯誤還有其他方法嗎?
任何幫助表示讚賞。
:我已經試過這個了,但是當進程終止因爲「fie not found」異常。 ExitCode僅僅是零。這並沒有得到,爲什麼它是零? – Shikha 2014-11-01 10:23:43
仍然exitcode只comin零 – Shikha 2014-11-01 10:28:20
什麼是'error.log'完全? – rene 2014-11-01 10:29:12