【问题标题】:double click to open file c#双击打开文件c#
【发布时间】:2011-01-01 09:34:10
【问题描述】:

我有一个充满文件路径的列表框。有谁知道双击文件时如何打开文件的默认程序?例如,如果列表框中的一项显示“c:\test.txt”,如何在记事本中打开它?如果它是“c:\inetpub\wwwroot\sitetest\test.asp”,如何在默认的 asp 编辑器中打开它?谢谢。

【问题讨论】:

    标签: c# file listbox double-click


    【解决方案1】:

    这并不能完全模仿 Windows 资源管理器中的双击。例如,使用 AutoCAD 会加载正确的版本,但是当我们将文件路径发送到 Process.Start 时会出现软锁许可证管理器错误。

    System.Diagnostics.Process.Start(dwgFilePath);
    

    要完全模拟 Windows 资源管理器的双击,我们必须将路径传递给 explorer.exe

    System.Diagnostics.Process.Start("explorer.exe", dwgFilePath);
    

    【讨论】:

      【解决方案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 会弹出应用程序选择器对话框,但在某些版本中,你只会得到一个异常。

      【讨论】:

      • 谢谢!现在,在相关说明中,如何在双击列表框时获取所选项目?我以为它会是 listbox.SelectedValue 但是当我双击时返回 null 。再次感谢!
      • 谢谢!我以为是 selectedvalue.tostring()。
      【解决方案3】:

      将文件名传递给System.Diagnostics.Process.Start() 方法

      【讨论】:

        猜你喜欢
        • 2012-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-12
        相关资源
        最近更新 更多