【发布时间】:2017-08-12 03:30:11
【问题描述】:
我有一个带有文档列表的listView。我使用以下方法为每个人分配了一个图标:
private void SetDocumentIcon(ListViewItem item, FileInfo file)
{
Icon iconForFile = Icon.ExtractAssociatedIcon(file.FullName);
if (!documentsIconsImageList.Images.ContainsKey(file.Extension))
{
iconForFile = Icon.ExtractAssociatedIcon(file.FullName);
documentsIconsImageList.Images.Add(file.Extension, iconForFile);
}
item.ImageKey = file.Extension;
}
我尝试将此方法用于文件夹,但失败了。据我了解,问题在于Icon.ExtractAssociatedIcon 用于文件而不是文件夹。那么如何提取文件夹的图标呢?
谢谢。
【问题讨论】:
-
有winapi函数SHGetStockIconInfo,但是pinvoke似乎很复杂。如果我是你 - 我会在某处创建虚拟的空文件夹,使用我提供的重复答案(这将是默认答案)提取图标,然后删除文件夹。当然,您只需在应用程序启动时执行一次。
-
@Evk
SHGetStockIconInfo一点也不复杂。
标签: c#