C#:如何获取某个文件的图标?

标签 c# windows file icons

如果我有一个文件的路径,有没有办法在 Windows 资源管理器中获取 Windows 为该文件显示的图标?

最佳答案

首先,图像有多种尺寸,其中一些尺寸比其他尺寸更容易获得。如果您想要“正常”大小的一号(我相信是 32x32)并且可以使用 WPF(引用 PresentationCore),这是一个很好的方法:

public System.Windows.Media.ImageSource Icon
{
    get
    {
        if (icon == null && System.IO.File.Exists(Command))
        {
            using (System.Drawing.Icon sysicon = System.Drawing.Icon.ExtractAssociatedIcon(Command))
            {
                // This new call in WPF finally allows us to read/display 32bit Windows file icons!
                icon = System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(
                  sysicon.Handle,
                  System.Windows.Int32Rect.Empty,
                  System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
            }
        }

        return icon;
    }
}

关于C#:如何获取某个文件的图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2160923/

相关文章:

c++ - 顶层窗口最小化时弹出窗口无法获得焦点

java - 在目录中构建文件数组

r - 如何以制表符分隔的方式写入文件?

c# - 通过解决方案定义 VisualStudio 颜色主题

c# - 如何使用 XmlWriter 编写格式不正确的 xml

c# - 使用 Azure ActiveDir oAuth2.0 JWT token 的 Asp-Net-Core WebApi 身份验证 Microsoft Graph

c# - 如何安装 Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms?

windows - 每个用户进程的 CPU、磁盘和内存使用情况

windows - 如何拦截/重写 Windows ODBC 调用?

python - pickle - 在文件中放置超过 1 个对象?