// загрузка иконки файла через WinApi и сохранение в imglstIcons private string GetIconKey(FileSystemItem fsItem) { string path = fsItem.FullPath; if (fsItem.IsDir && !fsItem.IsRoot) { path = System.Environment.SystemDirectory; // optimization, give all directories the same icon } else if (Path.HasExtension(path)) { path = Path.GetExtension(path); } if (imglstIcons.Images.ContainsKey(path)) { return(path); } AddImageToList(path, imglstIcons, ShellHelper.GetFileIcon(path, true, true)); return(path); }