我在打印*.prn
文件时遇到问题。这是代码:
Process process1 = new Process();
process1.StartInfo.FileName = "copy";
process1.StartInfo.Arguments = string.Format(@" /b C:/test/test.prn \\127.0.0.1\{0}",
SelectPrinterForm.selectedLine);
process1.Start();
SelectPrinterForm.selectedLine
中的我有选择打印机的名称。我在Start()
方法上遇到错误信息无法找到文件。
编辑(添加堆栈跟踪):
w System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
w System.Diagnostics.Process.Start()
为什么我有这个错误的任何建议?为什么当我使用“@”时,我仍然有"\\\\"
而不是"\\"
?
Process process1 = new Process();
string computerFullName = Program.GetFQDN();
process1.StartInfo.FileName = "cmd.exe";
process1.StartInfo.Arguments = string.Format(@" /c copy /B C:\test\test.prn \\{0}\{1}",
computerFullName,
SelectPrinterForm.selectedLine);
process1.Start();
答案 0 :(得分:3)
有什么建议我有这个错误吗?
“copy”不是Windows中的可执行文件,它是命令解释程序,cmd.exe的命令。等价物是Filename =“cmd.exe”,Arguments =“/ c copy”+ string.Format(...)。您可能不会对命令窗口或产生的糟糕错误报告感到满意,请考虑使用File.Copy()。
另外,为什么当我使用“@”时,我仍然有“\\”而不是“\”?
这是一个调试器工件,它不知道你是否在代码中使用@在安全方面如此错误并将字符串显示为常规C#字符串文字。使用文本可视化工具按原样查看字符串,单击spyglass图标。