在Winform开发中,大家普遍利用Listview来显示文件列表。 但是Listview本身并不具备显示当前系统图标的功能。所以要想实现类似的功能,需要利用Icon和Imagelist来辅助。
1, 实例一个imagelist作为图标管理容器。(拖一个imageList控件)
2, 根据文件绝对路径将对应的系统图标加入imagelist
3, 将listview的显示属性View修改为:SmallIcon或者(LargeIcon)
4, 获取对应图标的index 并赋值给ListViewItem
listView1.Items.Clear();
string DemoFolder = "c:\\listview";
DirectoryInfo di = new DirectoryInfo(DemoFolder);
//get all fileinfo in the demo folder
foreach (FileInfo f in di.GetFiles())
{
//add system icon of current file into imagelist
if (!imageList1.Images.Keys.Contains(f.Extension))
{
imageList1.Images.Add(f.Extension, Icon.ExtractAssociatedIcon(f.FullName));
}
ListV