/// <summary> /// Retrieves a thumbnail for the specified file. /// </summary> /// <param name="fileInfo">File to retrieve the thumbnail for.</param> /// <returns>Image thumbnail.</returns> public static Image Thumbnail(this FileInfo fileInfo) { try { ShellThumbnail thumb = new ShellThumbnail(); return thumb.GetThumbnail(fileInfo.FullName); } catch (Exception) { // create a dummy file to extract the icon from string tempPath = Path.GetTempPath() + StringUtilities.GetRandomString(10) + fileInfo.Extension; File.Create(tempPath); SysImageList list = new SysImageList(SysImageListSize.extraLargeIcons); Bitmap bitmap = list.Icon(list.IconIndex(tempPath)).ToBitmap(); File.Delete(tempPath); Bitmap copy = bitmap.Copy(); return copy; } }