首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在C#中获取常见的文件类型图标?

在C#中获取常见的文件类型图标,可以使用Windows API函数 SHGetFileInfo 来实现。以下是一个示例代码:

代码语言:csharp
复制
using System;
using System.Drawing;
using System.Runtime.InteropServices;

public class FileIcon
{
    [DllImport("shell32.dll", CharSet = CharSet.Auto)]
    private static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags);

    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
    private struct SHFILEINFO
    {
        public IntPtr hIcon;
        public int iIcon;
        public uint dwAttributes;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szDisplayName;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
        public string szTypeName;
    };

    private const uint SHGFI_ICON = 0x100;
    private const uint SHGFI_LARGEICON = 0x0;
    private const uint SHGFI_SMALLICON = 0x1;

    public static Icon GetFileIcon(string fileName, bool largeIcon)
    {
        SHFILEINFO shfi = new SHFILEINFO();
        uint flags = SHGFI_ICON | (largeIcon ? SHGFI_LARGEICON : SHGFI_SMALLICON);
        SHGetFileInfo(fileName, 0, ref shfi, (uint)Marshal.SizeOf(shfi), flags);
        return Icon.FromHandle(shfi.hIcon);
    }
}

使用该类的 GetFileIcon 方法,可以获取指定文件名的图标。例如:

代码语言:csharp
复制
Icon icon = FileIcon.GetFileIcon("C:\\example.txt", true);

该代码将返回一个表示 example.txt 文件的大图标。如果要获取小图标,可以将 GetFileIcon 方法的第二个参数设置为 false

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

56秒

PS小白教程:如何在Photoshop中给灰色图片上色

22秒

PS使用教程:如何在Mac版Photoshop中新建A4纸?

1分10秒

PS小白教程:如何在Photoshop中制作透明玻璃效果?

1分26秒

PS小白教程:如何在Photoshop中完美合并两张图片?

50秒

常见的DC电源模块故障排除方法

59秒

BOSHIDA DC电源模块在工业自动化中的应用

48秒

DC电源模块在传输过程中如何减少能量的损失

1分43秒

DC电源模块的模拟电源对比数字电源的优势有哪些?

1分1秒

BOSHIDA 如何选择适合自己的DC电源模块?

58秒

DC电源模块的优势

42秒

DC电源模块过载保护的原理

48秒

DC电源模块注胶的重要性

领券