我正在编写一个程序,用户可以在其中输入有关客户的一些信息,然后打开MS Word模型(* .dotx)。之后,他可以直接使用另一个程序将其存档。因此,我单击了为MS Word创建的按钮,然后它应该打开另一个程序(存档程序)并将路径传递给* .dotx文件。我得到了以下代码来通过路径并打开存档程序:

Process p = new Process();
p.StartInfo.Arguments = "Word " + secondArgument;
p.StartInfo.FileName = fileName;
p.Start();

字符串secondArgument ist指向文件的路径,而fileName则是归档程序exe文件的路径。

为了在存档程序中获取参数,我在Form_Load()中使用以下代码:
string[] args = Environment.GetCommandLineArgs();

然后,我使用MsgBox来查看它是否正确传递。但事实并非如此。 .dotx文件的名称中包含空格(例如“path\This is a test file.dotx”)。因此MessageBox.Show(args[0])的输出为“path\This”。我如何避免它在每个空格处分开?

赞赏的建议:)

最佳答案

您需要用引号将其引起来:

 "This is a test file.dotx"

MSDN:

10-06 12:46