将图标文件保存到硬盘驱动器

本文关键字:硬盘驱动器 保存 文件 图标 | 更新日期: 2023-09-27 17:55:13

我知道这一定非常简单 - 令人难以置信的是,我根据VB6中的简单程度搜索了这个问题的答案。我只想使用 Icon.ExtractAssociatedIcon 从 EXE 文件中提取图标,然后将此图标文件保存到我的硬盘驱动器。

所以,这就是我所拥有的,我也会告诉你我尝试过的东西,这样你就不会认为我懒惰了。

OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();
string s = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"'IconData.ico";
Icon ico = Icon.ExtractAssociatedIcon(ofd.FileName);
Bitmap bmp = ico.ToBitmap();
bmp.Save(s, System.Drawing.Imaging.ImageFormat.Icon);

上面的代码只是在我的桌面上制作一个名为"IconData.ico"的文件,其长度为 0 字节。 再一次,我相信这一定非常容易做到,但对于我的生活,我无法弄清楚。

谢谢!

将图标文件保存到硬盘驱动器

如果在不先转换为位图的情况下保存图标,您将获得更好的结果。 这是因为"图标"可以包含多种大小,而位图是在转换过程中选择的单个大小。

Icon 类没有保存到文件方法,但它确实有一个保存到 FileStream 方法,因此您可以像这样保存它:

        string s = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"'IconData.ico";
        using (FileStream fs = new FileStream(s, FileMode.Create))
            ico.Save(fs);