为什么processStartInfo不起作用

时间:2013-08-08 18:43:33

标签: c# process default-programs

我想用wordpad.exe打开文档,但它仍然以微软词开头

我目前有:

string fullPath = helpFiles[index];
ProcessStartInfo psi = new ProcessStartInfo("wordpad.exe");
psi.FileName = Path.GetFileName(fullPath);
psi.WorkingDirectory = Path.GetDirectoryName(fullPath);
psi.Arguments = fullPath;
Process.Start(psi);

2 个答案:

答案 0 :(得分:1)

我认为fullPath是您的文件名称。您正在将FileName属性设置为文档,这意味着它将在默认文档编辑器中打开(在本例中为Word)。

您正在使用的ProcessStartInfo的重载会为您设置文件名,但您要用Path.GetFileName(fullPath);替换该值,这就是完全忽略wordpad.exe的原因。将FileName设置为wordpad,将arguments设置为文件路径(即删除FilePath行)。

ProcessStartInfo psi = new ProcessStartInfo("wordpad");
psi.WorkingDirectory = Path.GetDirectoryName(fullPath);
psi.Arguments = fullPath;
Process.Start(psi);

答案 1 :(得分:0)

你应该这样做:

string fullPath = helpFiles[index];
//Check to make sure the path is valid
Process.Start(fullPath);

根据用户设置文件默认值的方式,让计算机确定打开文件的最佳程序。