first question here. I’m developing a program in C# (.NET 3.5) that displays files in a listview. I’d like to have the ‘large icon’ view display the icon that Windows Explorer uses for that filetype, otherwise I’ll have to use some existing code like this:
private int getFileTypeIconIndex(string fileName) { string fileLocation = Application.StartupPath + '\\Quarantine\\' + fileName; FileInfo fi = new FileInfo(fileLocation); switch (fi.Extension) { case '.pdf': return 1; case '.doc': case '.docx': case '.docm': case '.dotx':case '.dotm': case '.dot':case '.wpd': case '.wps': return 2; default: return 0; } }
The above code returns an integer that is used to select an icon from an imagelist that I populated with some common icons. It works fine but I’d need to add every extension under the sun! Is there a better way? Thanks!
You might find the use of Icon.ExtractAssociatedIcon a much simpler (an managed) approach than using SHGetFileInfo. But watch out: two files with the same extension may have different icons.