使用中描述的代码这个答案 https://stackoverflow.com/a/696144/107625SO 发布的“打开文件夹并选择文件” https://stackoverflow.com/questions/334630/open-folder-and-select-the-file,我创建了这个函数:
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 调用的 Win32/Shell 方法?
然后我会将它们与我所做的进行比较,以发现差异。
Chrome 很可能使用更灵活的而不是资源管理器命令行SHOpenFolderAndSelectItems http://msdn.microsoft.com/en-us/library/bb762232%28VS.85%29.aspx外壳 API。
这个答案 https://stackoverflow.com/a/3578581/246342包含所需的 p/invoke/implementation。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)