Exemplo n.º 1
0
 /// <summary>
 ///     依据文件名读取图标,若指定文件不存在,则返回空值。
 /// </summary>
 /// <param name="fileName"></param>
 /// <returns></returns>
 public static Icon GetIconByFileName(String fileName)
 {
     if (String.IsNullOrEmpty(fileName)) return null;
     if (!File.Exists(fileName)) return null;
     var shInfo = new SHFILEINFO();
     //Use this to get the small Icon
     Win32.SHGetFileInfo(fileName, 0, ref shInfo, (uint) Marshal.SizeOf(shInfo),
         Win32.SHGFI_ICON | Win32.SHGFI_SMALLICON);
     //The icon is returned in the hIcon member of the shinfo struct
     Icon myIcon = Icon.FromHandle(shInfo.hIcon);
     return myIcon;
 }
Exemplo n.º 2
0
 public static extern IntPtr SHGetFileInfo(String pszPath, uint dwFileAttributes, ref SHFILEINFO psfi,
     uint cbSizeFileInfo, uint uFlags);
Exemplo n.º 3
0
        /// <summary>
        /// 依据文件名读取图标,若指定文件不存在,则返回空值。
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public static Icon GetIconByFileName(string fileName)
        {
            if (fileName == null || fileName.Equals(string.Empty))
            {
                return null;
            }
            if (!File.Exists(fileName))
            {
                return null;
            }

            SHFILEINFO shInfo = new SHFILEINFO();
            //Use this to get the small Icon
            Win32.SHGetFileInfo(fileName, 0, ref shInfo, (uint)Marshal.SizeOf(shInfo), Win32.SHGFI_ICON | Win32.SHGFI_SMALLICON);
            //The icon is returned in the hIcon member of the shinfo struct
            System.Drawing.Icon myIcon = System.Drawing.Icon.FromHandle(shInfo.hIcon);
            return myIcon;
        }