通过Process.Start传递带空格的路径作为可执行文件的参数

时间:2015-09-15 15:19:50

标签: c# filepath

我有反斜杠和空格的路径,我需要将其作为参数发送到regedit.exe:

\\folder1\folder2\folder three\file.reg

根据我的知识,在字符串前面使用@应该允许直接指定反斜杠(没有转义)。这是我正在尝试执行它的完整代码:

string path = @"\\folder1\folder2\folder three\file.reg"
Process regeditProcess = Process.Start("regedit.exe", file);

当我尝试运行程序时,它从regedit的输出中给出了一个错误:

  

无法导入\ folder1 \ folder2 \ folder:打开文件时出错。可能存在磁盘或文件系统错误

因为错误报告正确反斜杠我猜测编译器或regedit在"文件夹"

之后没有读过任何超过空格的内容

1 个答案:

答案 0 :(得分:6)

在命令行中传递参数时,需要用"包围它们。试试这个:

string path = @"""\\folder1\folder2\folder three\file.reg""";
Process regeditProcess = Process.Start("regedit.exe", path);

在逐字字符串中添加""将向字符串添加单个双引号,以便生成的字符串为"\\folder1\folder2\folder three\file.reg",然后允许它正确传递给regedit.exe