我可以使用以下命令轻松地让资源管理器打开并选择一个文件:
string argument = @"/select, " + filePath;
System.Diagnostics.Process.Start("explorer.exe", argument);
但是当我打开下一个文件时,我会得到一个新的资源管理器实例。这可能会导致我们的用户在密集的一天结束时打开数百个探索器。
我怎样才能让它重用一个已经打开的资源管理器实例来选择我想要的文件?
Visual Studio 可以在您右键单击选项卡并选择打开包含的文件夹... 时执行此操作,前提是资源管理器已在同一目录中打开。它是如何做到这一点的?
最佳答案
使用 ExplorerBrowser
对象的 embedding the Explorer window into your application 怎么样?这样,当您想要显示不同的文件夹时,您可以通过在不同的文件夹上调用 IExplorerBrowser::BrowseToObject
来继续重用该窗口。
尝试重新导航现有的资源管理器窗口是有问题的,因为您不知道用户在您不在的时候对该窗口做了什么。也许他们使用“文件夹” Pane 转到其他文件夹,然后轰您只是从他们下面撕下该文件夹并将其发送到其他地方。或者也许他们关闭了它!打开一个新的资源管理器窗口是一种即发即弃的事情。如果您想保留对窗口的控制,则需要进行更明确的控制(例如,通过上面的 ExplorerBrowser
)。
关于c# - 如何设置现有的 Explorer.exe 实例来选择文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8182494/