如何判断文件是否没有关联图标

时间:2009-08-27 13:33:33

标签: windows winapi

我正在使用 SHGetFileInfo api获取句柄并显示与特定文件关联的图标。

如果文件没有与之关联的图标,Windows将返回它在资源管理器中用于未知文件类型的默认文件。在这种情况下,我想要显示图标。

如何判断文件是否没有关联图标,Windows是否还给了我一个默认文件?

在我的系统中,SHFILEINFO.iIcon在这种情况下始终等于3,但我不确定它有多可靠,我希望有更好的方法来检查它。

编辑:我的目标是Windows XP及以上版本

由于

2 个答案:

答案 0 :(得分:1)

您定位的是哪个操作系统版本?如果您可以假设Vista及更高版本,那么您可能会发现有用的API SHGetStockIconInfo

SHGetStockIconInfo(SIID_DOCNOASSOC, SHGSI_SYSICONINDEX, &sii) 

将返回您在sii.iSysImageIndex中寻找的图标索引。

答案 1 :(得分:0)

您可以尝试将带有未知扩展名的虚构文件名传递给SHGetFileInfo(),跟踪它报告的图标索引,然后将该索引与真实文件进行比较。