gpt4 book ai didi

c# - ShGetFileInfo 调用目录异常

转载 作者:行者123 更新时间:2023-11-30 18:09:27 25 4
gpt4 key购买 nike

我有一个简单的文件浏览器,我在那里显示文件和文件夹,

获得者(对于目录)

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 函数用这个参数做什么?它获得的具体图标是什么?

再说一次,这不是问题,我只是好奇。

最佳答案

据我所知,图标资源是通过它们的数字索引访问的,所以我的猜测是获取了正确的索引,然后从错误的库中获取图标,或者从正确的库中获取图标但使用了错误的偏移量+正确的索引。

关于c# - ShGetFileInfo 调用目录异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2463452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com