我有一个简单的文件浏览器,我在那里显示文件和文件夹,
由(目录)
获得SHFILEINFO info = new SHFILEINFO();
SHGetFileInfo(filename,
FILE_ATTRIBUTE_DIRECTORY,
ref info,Marshal.SizeOf(info),
SHGFI_ICON | SHGFI_USEFILEATTRIBUTES | SHGFI_SMALLICON | SHGFI_ADDOVERLAYS);
它100%正常工作,但我注意到一个奇怪的 - 如果我尝试获取目录的图标,但指定FILE_ATTRIBUTE_NORMAL而不是FILE_ATTRIBUTE_DIRECTORY 但它对目录有奇怪的东西 - 普通文件夹有“未知文件类型白皮书”图标,回收站有VLC图标等.SVN下的目录有适当的覆盖,但基本文件图标(白纸)。
据我所知,目录的基本图标现在是未知文件,但为什么有些文件夹有完全奇怪的图标? Config.MSI有安装程序图标,回收站有VLC图标(wtf?!)等.shell函数对这些参数有什么作用?它究竟是什么图标?
同样,这不是问题,我只是好奇。
答案 0 :(得分:1)
据我所知,图标资源是通过它们的数字索引访问的,所以我的猜测是获取了正确的索引,然后从错误的库中获取图标,或者从正确的文件中获取图标但是使用了错误的偏移+正确的指数。