我的目标是编写一段C#代码,以打开Windows资源管理器窗口,并选择特定的文件。如果这样的窗口已经打开,我想将其置于前台。我尝试了两个选项。
首先,我通过显式调用 explorer.exe
来开始:
arg = "/select, " + pathToFile;
Process.Start("explorer.exe", arg);
这段代码可以成功打开和选择一个窗口,但问题在于它总是会新打开一个窗口,即使已经存在一个窗口。因此,我尝试了以下代码:
Process.Start(pathToDir);
这会打开一个新窗口或聚焦到旧窗口,但不提供选择文件的选项。
我该怎么办?我查看了explorer
的参数,但没有发现任何可以使用的选项。最后的备选方案是获取已经打开的窗口列表,并使用一些WINAPI级别的代码来处理它,但这似乎过于复杂。
"/select," + pathToFile
(逗号和路径之间没有空格) - Ben Boyle