C# 获取系统文件图标
2011-06-22 17:58
591 查看
获取文件的图标
this.Icon = GetFileIcon(@"c:\gdiplus.dll");
获取文件夹图标
this.Icon = GetDirectoryIcon();
全不代码
this.Icon = GetFileIcon(@"c:\gdiplus.dll");
获取文件夹图标
this.Icon = GetDirectoryIcon();
全不代码
[StructLayout(LayoutKind.Sequential)] public struct SHFILEINFO { public IntPtr hIcon; public IntPtr iIcon; public uint dwAttributes; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] public string szDisplayName; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)] public string szTypeName; } /// <summary> /// 返回系统设置的图标 /// </summary> /// <param name="pszPath">文件路径 如果为"" 返回文件夹的</param> /// <param name="dwFileAttributes">0</param> /// <param name="psfi">结构体</param> /// <param name="cbSizeFileInfo">结构体大小</param> /// <param name="uFlags">枚举类型</param> /// <returns>-1失败</returns> [DllImport("shell32.dll")] public static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags); public enum SHGFI { SHGFI_ICON = 0x100, SHGFI_LARGEICON = 0x0, SHGFI_USEFILEATTRIBUTES = 0x10 } /// <summary> /// 获取文件图标 zgke@sina.com qq:116149 /// </summary> /// <param name="p_Path">文件全路径</param> /// <returns>图标</returns> public static Icon GetFileIcon(string p_Path) { SHFILEINFO _SHFILEINFO = new SHFILEINFO(); IntPtr _IconIntPtr = SHGetFileInfo(p_Path, 0, ref _SHFILEINFO, (uint)Marshal.SizeOf(_SHFILEINFO), (uint)(SHGFI.SHGFI_ICON | SHGFI.SHGFI_LARGEICON | SHGFI.SHGFI_USEFILEATTRIBUTES)); if (_IconIntPtr.Equals(IntPtr.Zero)) return null; Icon _Icon = System.Drawing.Icon.FromHandle(_SHFILEINFO.hIcon); return _Icon; } /// <summary> /// 获取文件夹图标 zgke@sina.com qq:116149 /// </summary> /// <returns>图标</returns> public static Icon GetDirectoryIcon() { SHFILEINFO _SHFILEINFO = new SHFILEINFO(); IntPtr _IconIntPtr = SHGetFileInfo(@"", 0, ref _SHFILEINFO, (uint)Marshal.SizeOf(_SHFILEINFO), (uint)(SHGFI.SHGFI_ICON | SHGFI.SHGFI_LARGEICON)); if (_IconIntPtr.Equals(IntPtr.Zero)) return null; Icon _Icon = System.Drawing.Icon.FromHandle(_SHFILEINFO.hIcon); return _Icon; }
相关文章推荐
- c# 获取系统文件图标
- c# 获取系统文件图标
- C# 获取系统文件图标
- C# 获取系统关联文件图标完整类
- C# 获取系统关联文件图标完整类
- C#获取系统文件、文件夹和磁盘驱动器图标
- C#获取系统文件、文件夹和磁盘驱动器图标
- 在C#中获取各种文件的系统图标
- CodeProject - 在C#使用SHGetFileInfo获取(管理)文件或者文件夹图标(C#封装Win32函数的一个例子)
- C#获取文件超大图标256*256(转)
- C#读取系统文件信息(二)——调API读取系统文件及系统盘Icon图标
- delphi 获取系统注册的文件图标
- C# 获取系统Icon、获取文件相关的Icon
- C# 系统应用之TreeView控件 (一).显示树状磁盘文件目录及加载图标
- 根据文件扩展名获取系统图标
- C#读取系统文件图标
- 1.根据文件路径文件或文件夹图标获取 2.根据后缀获取系统图标
- SHGetFileInfo函数 获取系统文件类型及图标
- 如何获取文件在系统中的图标?
- 使用C#的ICON类轻松获取文件图标