Process.Start在C#中系统无法使用变量名找到指定的文件错误

Process.Start在C#中系统无法使用变量名找到指定的文件错误,c#,file,process,C#,File,Process,我使用c#从传递给应用程序的参数启动进程。 将参数放入变量中,然后将这些变量传递给流程启动 ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = FileName; startInfo.WorkingDirectory = Path.GetDirectoryName(FileName)

我使用c#从传递给应用程序的参数启动进程。
将参数放入变量中,然后将这些变量传递给流程启动

                    ProcessStartInfo startInfo = new ProcessStartInfo();
                    startInfo.FileName = FileName;
                    startInfo.WorkingDirectory = Path.GetDirectoryName(FileName);
                    startInfo.Arguments = Arguments;
                    startInfo.ErrorDialog = true;
                    startInfo.UseShellExecute = false;
                    startInfo.RedirectStandardOutput = true;
                    startInfo.RedirectStandardError = true;
                    Process proc = Process.Start(startInfo);
我曾尝试在路径中使用单斜杠和双斜杠,但仍然得到相同的错误。这是一个日志文件(忽略日期和双等于),路径是每个测试包含的变量。我试过双斜线和单斜线

attempt 1
C:\\Program Files\\Internet Explorer
C:\\Program Files\\Internet Explorer\\iexplore.exe

attempt 2
C:\Program Files\Internet Explorer
C:\Program Files\Internet Explorer\iexplore.exe

我还尝试在FileName变量前面添加一个“@”,希望这会有所帮助(但没有)
有人知道为什么这样看不到文件吗?

这些参数通过协议处理程序(HTML页面)传递,路径中的空格被替换,然后被删除并替换为应用程序中的空格。出于某种原因,即使文件名在应用程序中看起来正确,但替换文件也无法正常工作,因为该文件从未出现过。我删除了并替换为调用协议处理程序的HTML中的空格(不需要空格),现在可以正确地看到文件了。不确定它们为什么会这样开始,除非注册表中的命令行脚本在FileName变量前面的%1参数周围没有引号

那是什么
@
?您不需要在FileName之前添加不是保留关键字的@。文件名的值是多少?您确定此值指定的文件存在吗?我不明白,2020年9月16日,星期三==C:\\Program Files\\Internet Explorer…。这些只是我正在写的日志文件,我应该在上面解释一下。日期仅仅是日志写入的时间。double equals之后是变量当时包含的内容。