【问题标题】:Opening an explorer window with designated file selected打开资源管理器窗口并选择指定文件
【发布时间】:2010-10-08 02:52:16
【问题描述】:

我有一个应用程序,它可以选择在文件所在的文件夹中显示所选文件。我的问题是,我该如何实现?

澄清一下,如果我的程序中的用户选择了“Test.txt”文件,那么我希望弹出一个 Windows 资源管理器窗口并突出显示用户选择的文件。您可以在 LimeWire 和 uTorrent 中看到类似的行为。如果您在其中任何一个程序中选择一个文件并选择“在文件夹中显示”,它会弹出一个 Windows 资源管理器窗口,其中突出显示并选中该文件。我正在尝试复制这种行为。

我尝试使用以下行:

System.Diagnostics.Process.Start("Explorer");

这将弹出 Windows 资源管理器窗口,但是,它似乎总是默认在“我的文档”文件夹中打开。

【问题讨论】:

    标签: c# .net shell windows-explorer


    【解决方案1】:

    给你,

    string fileToSelect = @"C:\temp.img";
    string args = string.Format("/Select, \"{0}\"", fileToSelect);
    
    ProcessStartInfo pfi = new ProcessStartInfo("Explorer.exe", args);
    System.Diagnostics.Process.Start(pfi);
    

    注意:{0} 参数中添加\" beforeafter 可以使fileToSelect 字符串包含空格(即“ C:\我的文档”)。

    来自这个帖子:
    Programmatically select multiple files in windows explorer

    干杯,

    【讨论】:

      【解决方案2】:

      有一个记录在案的 API 可以做到这一点:SHOpenFolderAndSelectItems。谁知道呢,当 explorer 不是默认 shell 时,它甚至可能做正确的事 :)

      【讨论】:

        【解决方案3】:

        你可以用字符串构造文件夹路径,然后发送到windows命令行浏览。

        http://www.c-sharpcorner.com/UploadFile/DipalChoksi/ShellCommandsInCS12032005042031AM/ShellCommandsInCS.aspx

        【讨论】:

          【解决方案4】:

          对于 VB:

          Dim q as Char = ControlChars.Quote
          Dim path As String = q & "D:\examples\test doc.txt" & q
          Dim psi as New ProcessStartInfo("Explorer.exe", "/Select, " & path)
          Process.Start(psi)
          

          正如其他人所指出的,包含空格的路径必须用引号引起来。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-05-05
            • 2010-09-24
            • 2014-06-25
            • 1970-01-01
            • 1970-01-01
            • 2010-11-07
            • 2010-11-28
            • 1970-01-01
            相关资源
            最近更新 更多