我有一个填充了文件路径的列表框。有人知道如何在双击时打开文件的默认程序吗?例如,如果列表框中的一个项目显示“c:\ test.txt”,那么如何在记事本中打开它?如果是“c:\ inetpub \ wwwroot \ sitetest \ test.asp”,如何在默认的asp编辑器中打开它?感谢。
答案 0 :(得分:10)
将文件名传递给System.Diagnostics.Process.Start()方法
答案 1 :(得分: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会弹出应用程序选择器对话框,但在某些版本中,您只会获得异常。
答案 2 :(得分:0)
这并不能完全模仿Windows资源管理器中的双击。例如,使用AutoCAD时,会加载正确的版本,但在将文件路径发送到Process.Start时会出现软锁许可证管理器错误。
System.Diagnostics.Process.Start(dwgFilePath);
要从Windows资源管理器中完全模拟双击,我们必须将路径传递给explorer.exe
System.Diagnostics.Process.Start("explorer.exe", dwgFilePath);