C# 获取文件图标

Posted MoonLightWatch

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 获取文件图标相关的知识,希望对你有一定的参考价值。

  今天突然想到一个问题,如何去获取一个文件的关联图标呢?于是就上网搜索了一下。现总结如下:

  首先明确问题:获取一个文件的关联图标或者是某个类型文件的显示图标。

  在网上搜了一圈,发现方法还是比较多的,但是应用C#进行获取的方法不多。我选择一种用.Net库的方法。

  使用的类:

    System.Drawing.Icon ,位于System.Drawing 命名空间。

  具体方法:  

    System.Drawing.Icon 类中的静态方法:public static Icon ExtractAssociatedIcon(string filePath)

  此方法接收一个文件路径,返回一个 Icon 类型的对象。此对象既是指定文件的 Icon 图标对象。

  此 Icon 类提供了 Save 方法,可以将 Icon 文件写入流中,进而保存至硬盘文件。

  当然要在程序中显示也是可以的,Icon 类提供了 ToBitmap 方法,可以将 Icon 文件转换为 Bitmap。Bitmap 就可以在 PictureBox 中显示了。

  如果要根据后缀名来获取文件图标,那要怎么办呢?我想了一个比较笨的办法。看代码~

    string fileName = "tmp." + houzhuiming;
    File.Create(fileName).Close();
    Image img = System.Drawing.Icon.ExtractAssociatedIcon(fileName).ToBitmap();
    File.Delete(fileName);

  如此,新建一个指定后缀名的文件,获取图标后直接删除,就能获得指定文件后缀名的图标了。嘻嘻~

以上是关于C# 获取文件图标的主要内容,如果未能解决你的问题,请参考以下文章

C#获取MesssBox里的图标,也就是MessageBoxIcon

在 C# 托盘中拖放 NotifyIcon

如何在 .NET 中获取文件扩展名的描述

QT5获取系统文件图标,文件路径

java怎样获取apk文件icon图标

Windows系统SHELL图标获取的功能类分享