草庐IT

IStorage

全部标签

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

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