使用这篇回答中描述的代码,来自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 方法?
我将比较它们与我所做的差异。
SHOpenFolderAndSelectItems
:https://dev59.com/lnNA5IYBdhLWcg3wI6V4?rq=1 - Alex K.