打开资源管理器窗口并选择指定文件

Posted

技术标签:

【中文标题】打开资源管理器窗口并选择指定文件【英文标题】: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 资源管理器窗口,但是,它似乎总是默认在“我的文档”文件夹中打开。

【问题讨论】:

【参考方案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)

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

【讨论】:

以上是关于打开资源管理器窗口并选择指定文件的主要内容,如果未能解决你的问题,请参考以下文章

cmd命令行窗口和文件目录资源管理器快速切换

选择文件打开 Windows 资源管理器(或焦点,如果存在)的代码

Excel VBA - 从多个打开的文件资源管理器窗口中关闭特定的文件资源管理器窗口

启动 Windows 资源管理器并突出显示文件

Unity 从Inspector界面打开资源管理器选择并记录文件路径

打开资源管理器窗口并等待它关闭