首先我会说我对使用 COM 的经验绝对为零,更不用说通过 PHP 的 COM extension 使用它们了。 .
作为更大项目的一部分,我需要获取 IShellFolder
表示给定的绝对系统路径。我做了很多谷歌搜索,我遇到的大多数解决方案都涉及利用 SHGetDesktopFolder
,但结合了语法差异(因为我看到的所有示例都是使用某些 .NET 语言或其他语言)以及 Desktop
的事实可能不会是我正在寻找的道路的祖先,这让我感到困惑。
如果它与答案相关,我的最终目标是使用 IShellFolder
检索 IExtractImage
对于 IShellFolder
中的给定文件并在运行脚本的服务器上显示图像。
最佳答案
不知道PHP有没有什么特别的工具,但是C或者C++ Raymond Chen推荐使用SHParseDisplayName
将绝对路径转换为 PIDL
,然后 SHBindToParent
这会为您提供文件夹中文件的 IShellFolder
指针和 PCUITEMID_CHILD
。
(His example function GetUIObjectOfFile
更进一步并绑定(bind)到对象本身,尽管这可能不是您想要的)
但是,由于它使您在处理其他内容之外还要处理 PIDL,因此它可能比 SHGetDesktopFolder
方法更糟糕。
关于php - 如何将绝对系统路径转换为 IShellFolder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22548071/