我有一个充满文件路径的列表框。有谁知道双击文件时如何打开文件的默认程序?例如,如果列表框中的一项显示“c:\test.txt”,如何在记事本中打开它?如果它是“c:\inetpub\wwwroot\sitetest\test.asp”,如何在默认的 asp 编辑器中打开它?谢谢。
问问题
5487 次
3 回答
10
将文件名传递给System.Diagnostics.Process.Start()方法
于 2010-01-04T20:26:54.353 回答
2
您可以使用 Process/ProcessStartInfo 类在 Windows 中使用默认应用程序处理程序执行文件。
例如:
ProcessStartInfo psi = new ProccessStartInfo();
psi.FileName = "myfile.txt";
Process p = new Process();
p.StartInfo = psi;
p.Start();
请记住,p.Start() 可能会引发您必须处理的异常,并且不同版本的 Windows 的行为会略有不同。我知道如果文件类型没有默认处理程序,Win7/Vista 会弹出应用程序选择器对话框,但在某些版本中,你只会得到一个异常。
于 2010-01-04T20:31:27.417 回答
0
这并不能完全模仿 Windows 资源管理器中的双击。例如,使用 AutoCAD 会加载正确的版本,但是当我们将文件路径发送到 Process.Start 时,会出现软锁许可证管理器错误。
System.Diagnostics.Process.Start(dwgFilePath);
要完全模拟 Windows 资源管理器中的双击,我们必须将路径传递给 explorer.exe
System.Diagnostics.Process.Start("explorer.exe", dwgFilePath);
于 2018-03-14T23:56:19.237 回答