Win32 - 基于文件夹 PIDL 确定文件夹中是否存在文件的最快方法?



使用Windows/shell api(atl be ok(,给定文件夹的PIDL,检查该文件夹中是否存在文件的最快方法是什么?

不确定这是否是最快的方法,但它相当简单:

使用SHGetDesktopFolder()IShellFolder::BindToObject()或仅SHBindToObject()或其他相关功能将PIDL转换为IShellFolder(如果您还没有(。然后调用文件夹的IShellFolder::ParseDisplayName()(如果需要,还可以调用IShellFolder::GetAttributesOf()(以获取子文件名。 如果发生错误,则该文件不存在。

或者,使用SHCreateItemFromIDList()PIDL转换为IShellItem(如果还没有(,然后使用SHCreateItemFromRelativeName()(如果需要,还可以使用IShellItem::GetAttributes(SFGAO_VALIDATE)(作为子文件名。 同样,如果发生错误(或属性未验证(,则文件不存在。

相关内容

  • 没有找到相关文章

最新更新