Mit diesem kleinen Snippet kann das Icon einer Datei ausgelesen werden. Gibt es kein Icon wird das Standard-Windows Icon benutzt.

In diesem Beispiel wird das Icon eines ListViewItems gesetzt.

        private void GetImageLivi(ListViewItem liviItem, string filename)
        {
            FileInfo fi = new FileInfo(filename);

            System.Drawing.Icon iconForFile = System.Drawing.SystemIcons.WinLogo;
            iconForFile = System.Drawing.Icon.ExtractAssociatedIcon(fi.FullName);

            if (!ilLivi.Images.ContainsKey(fi.Extension))
            {
                iconForFile = System.Drawing.Icon.ExtractAssociatedIcon(fi.FullName);
                ilLivi.Images.Add(fi.Extension, iconForFile);
            }

            liviItem.ImageKey = fi.Extension;
        }