C#中的网络COPY Cmds - 找不到文件?

时间:2011-03-18 16:10:59

标签: c# networking command-line batch-file copy

我正在尝试将文件复制到映射驱动器上的网络文件夹。我在我的命令行中测试了COPY,所以我认为我会尝试在C#中自动执行该过程。

ProcessStartInfo PInfo;
Process P;
PInfo = new ProcessStartInfo("COPY \"" + "c:\\test\\test.txt" + "\" \"" + "w:\\test\\what.txt" + "\"", @"/Z");
PInfo.CreateNoWindow = false; //nowindow
PInfo.UseShellExecute = true; //use shell
P = Process.Start(PInfo);
P.WaitForExit(5000); //give it some time to finish
P.Close();

引发异常: System.ComponentModel.Win32Exception(0x80004005):系统找不到指定的文件

我错过了什么?我是否必须在命令参数中添加任何其他内容?

我已经尝试过File.Copy,但它似乎不起作用(File.Exists("<mappeddriveletter>:\\folder\\file.txt");)会导致错误。

3 个答案:

答案 0 :(得分:2)

嗯,对于技术位:copy本身不是可执行文件,而只是cmd解释的命令。所以基本上,你必须将cmd.exe作为一个进程启动,并向它传递一个标志,使其运行copy命令(你还必须提供它作为参数)。

无论如何,我会支持Promit并建议调查File.Copy或类似内容。

e:啊,当我发布这篇文章时,错过了你对Promit答案的评论。

答案 1 :(得分:2)

此SO帖子包含一个示例

Run Command Prompt Commands

如何正确行事。您需要以cmd.exe作为参数调用/c copy

答案 2 :(得分:1)

使用File.Copy会不会更容易?