Issue using Process.Start() to execute command line statement

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I am having issues copying files from network drive to local machine using
xcopy. The following code works alright for a console application, but as
soon as i call this code in Form Load event of windows application it does
not work. I am confused here, it copies files in a console application, but
not windows app

ProcessStartInfo info = new ProcessStartInfo("xcopy", "");
info.FileName = "xcopy";
info.Arguments = string.Format("\"{0}\" \"{1}\" /r/e/c/i/y/d",
@"\\melsrv01\Public\Templates\Austock Office\.",
@"C:\temp\Test Images");
info.UseShellExecute = false;
info.RedirectStandardOutput = true;

Process process = Process.Start(info);
string result = process.StandardOutput.ReadToEnd();
process.WaitForExit();
Console.WriteLine(result);
//MessageBox.Show(result);


Please help. Thanks
 
Job Lot said:
I am having issues copying files from network drive to local machine using
xcopy. The following code works alright for a console application, but as
soon as i call this code in Form Load event of windows application it does
not work. I am confused here, it copies files in a console application,
but
not windows app

What do you mean by "does not work"?
 
It copies the file from network drive to local machine in the console
application, but does not copy anything when the same code is used in Form
Load event of the windows application.
 
It's a quirk of xcopy.exe; when you redirect output you have to
redirect input too. If you don't, it immediately (and silently) quits
right after startup.
 
As a complete aside - can I recommend robocopy as a replacement to
xcopy? You can download from Microsoft, or it is included in Vista; it
does more, does it better, and does it quicker.

Marc
 
Thanks (e-mail address removed) that did the trick. I didn't find any mention of
that in MSDN !!!
 
Back
Top