C# 如何使用Process.Start打开word文件(带空格的路径)?

C# 如何使用Process.Start打开word文件(带空格的路径)?,c#,process.start,C#,Process.start,文件位于目录中,但空格导致此错误: string outfile = @"C:\Users\hp\Desktop\New folder (4)\outFile.doc"; Process.Start("WINWORD.EXE", outfile); 显示此消息 及 这个 由于路径包含空格,并且程序参数通常由空格分隔,因此您的输出文件将被解释为3个不同的参数。您需要用引号将路径括起来才能使其正常工作 string outfile = @"""C:\Users\hp\Desktop\Ne

文件位于目录中,但空格导致此错误:

string outfile = @"C:\Users\hp\Desktop\New folder (4)\outFile.doc";    
Process.Start("WINWORD.EXE", outfile);
显示此消息

及 这个


由于路径包含空格,并且程序参数通常由空格分隔,因此您的
输出文件将被解释为3个不同的参数。您需要用引号将路径括起来才能使其正常工作

string outfile = @"""C:\Users\hp\Desktop\New folder (4)\outFile.doc""";

引号必须加倍,因为您使用的是逐字字符串。

由于路径包含空格,并且通常程序参数由空格分隔,因此您的
输出文件将被解释为3个不同的参数。您需要用引号将路径括起来才能使其正常工作

string outfile = @"""C:\Users\hp\Desktop\New folder (4)\outFile.doc""";

引号必须加倍,因为您使用了逐字字符串。

如果Winword.exe是Word文档的默认应用程序,则只需在process Filename属性中指定文档的路径,如下所示

        Process p = new Process();
        p.StartInfo.FileName = @"C:\Users\Someone\Documents\Path With Spaces\Word.docx";
        p.Start();

在Visual Studio 2015 Community Edition中测试

如果Winword.exe是Word文档的默认应用程序,则只需在process Filename属性中指定文档的路径,如下所示

        Process p = new Process();
        p.StartInfo.FileName = @"C:\Users\Someone\Documents\Path With Spaces\Word.docx";
        p.Start();
    string outfile = "\"C:\\Users\\hp\\Desktop\\New folder (4)\\outFile.doc\"";    
Process.Start("WINWORD.EXE", outfile);

在Visual Studio 2015社区版中测试

非常感谢它可以工作:D但不会将整个字符串作为一个单元进行@交互?我不太确定您所说的“交互”是什么意思,@会说,整个字符串是逐字逐句的。我的印象是您忽略了一个事实,
string
声明中使用的引号不是用于将参数传递给流程的引号。但是我是否需要额外的引号来传递流程的路径?当我读到关于“进程”的内容时,第二个参数是文件路径,它只运行了很多次:D,但不@与整个字符串作为一个单元进行交互?我不太确定你说的“交互”是什么意思,@确实说,整个字符串是逐字逐句的。我的印象是您忽略了一个事实,
string
声明中使用的引号不是用于将参数传递给流程的引号。但是我是否需要额外的引号来传递流程的路径?当我阅读有关“进程”的内容时,第二个参数只是文件路径
    string outfile = "\"C:\\Users\\hp\\Desktop\\New folder (4)\\outFile.doc\"";    
Process.Start("WINWORD.EXE", outfile);