在Windows资源管理器中打开文件夹并选择文件,仅第二次有效。

9

使用这篇回答中描述的代码,来自SO帖子“打开文件夹并选择文件”,我创建了这个函数:

public static void OpenExplorerAndSelectFile(string filePath)
{
    Process.Start(
        @"explorer.exe",
        string.Format(@"/select, ""{0}""", filePath));
}

这个函数运行良好,只有一个小问题:

第一次针对特定文件调用函数时,Windows资源管理器将以文件所在的文件夹正确显示出来,但它不会选择该文件

再次为同一文件调用相同的函数时,它会切换回已在 Windows 资源管理器中打开的文件夹,然后选择该文件。

例如,第一次调用OpenExplorerAndSelectFile("C:\MyFolder\MyFile.txt")会在新的 Windows 资源管理器窗口中打开文件夹"C:\MyFolder"。第二次调用OpenExplorerAndSelectFile("C:\MyFolder\MyFile.txt")实际上会再次激活该窗口并选择MyFile.txt

在 Google Chrome 中执行类似的操作(进入下载页面并显示先前下载的文件),实际上在第一次尝试中就能成功。

因此,我的结论是 Google Chrome 似乎与我做的有点不同。

我的问题:

是否有一种方法可以调试/跟踪 Google Chrome 调用的 Win32/Shell 方法?

我将比较它们与我所做的差异。


1
我无法在Win7 / x64上重现这个问题。对我来说,它第一次选择文件,但它不会重新使用打开的窗口,它总是创建一个新的窗口。 - rene
2
SHOpenFolderAndSelectItems:https://dev59.com/lnNA5IYBdhLWcg3wI6V4?rq=1 - Alex K.
@AlexK。这个完美地运作了,非常感谢!也许你可以把它作为一个答案,这样我就可以接受它了? - Uwe Keim
2个回答

2

然而,如果在新创建/重命名/复制的文件夹上执行此解决方案,则对我无效。有人可以验证一下吗? - gil_mo

-3

那么你基本上是复制了Alex K.的评论? - Uwe Keim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接