草庐IT

IShellItem

全部标签

windows - 如何检索 IShellItem 的创建日期?

我有一个文件夹的pidl(可能存在或已被删除)。我可以用下面的代码得到一个IShellItem,但我需要的是得到那个文件夹的创建日期。我想我可以使用PKEY_DateCreated获取它,但我不知道如何获取。SHCreateShellItem(nil,nil,pidl,ShellItem);我该怎么做?我使用Delphi。 最佳答案 如果您有PIDL,您可以使用SHGetDataFromIDList获取对象的基本属性;您根本不需要IShellItem(或IShellItem2)。您将为nFormat参数指定SHGDFIL_FINDD

c++ - 通过 `IShellItem`获取文件大小

我已经使用IShellItem、IShellFolder、IStorage、IStream为WindowsShell实现了目录遍历算法>等。一切都很好。我什至可以走进shell命名空间扩展(例如.zip)文件。但是,当文件被其他一些具有独占访问权限的程序使用时,我在提取(常规)文件大小时遇到​​问题。AFAIK,只有STATSTG结构提供了比文件名更多的信息。基本上有3种方法可以获取IShellItem的STATSTG:使用IEnumSTATSTG代替IEnumIDList进行迭代。不是调用IShellFolder::EnumObjects(),而是获取文件夹的IStorage并调用I

windows - 如何获取 IShellItem 的系统图像列表图标索引?

给定WindowsVista或更新版本的IShellItem,我如何获取与该项目关联的系统图像列表图标索引?例如(伪代码):IShellItemnetworkFolder=SHGetKnownFolderItem(FOLDERID_NetworkFolder,0,0,IShellItem);Int32iconIndex=GetSmallSysIconIndex(networkFolder);Int32GetSmallSysIconIndex(IShellItemitem){//TODO:AskStackoverflow}背景在过去(Windows95和更新版本),我们可以要求shell