/// <summary> /// 根据文件路径获取大图标 /// </summary> /// <param name="fileName">文件路径(例如:F:\,F:\Images,F:\Images\Bg.jpg)</param> /// <returns>Icon图标</returns> public static Icon GetLargeIcon(string fileName) { IntPtr hImgLarge; QuickBox.MG.Common.Win32.SHFILEINFO shinfo = new Win32.SHFILEINFO(); hImgLarge = Win32.SHGetFileInfo(fileName, 0, ref shinfo, (uint)Marshal.SizeOf(shinfo), Win32.SHGFI_ICON | Win32.SHGFI_LARGEICON); return(System.Drawing.Icon.FromHandle(shinfo.hIcon)); }
/// <summary> /// 从文件扩展名得到文件关联图标 /// </summary> /// <param name="fileName">文件名或文件扩展名</param> /// <param name="smallIcon">是否是获取小图标,否则是大图标</param> /// <returns>Icon图标</returns> public static Icon GetFileIcon(string fileName, bool smallIcon) { QuickBox.MG.Common.Win32.SHFILEINFO shinfo = new Win32.SHFILEINFO(); Icon icon = null; int iTotal = (int)Win32.SHGetFileInfo(fileName, 100, ref shinfo, 0, (uint)(smallIcon ? 273 : 272)); if (iTotal > 0) { icon = Icon.FromHandle(shinfo.hIcon); } return(icon); }