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

时间:2011-05-08 01:24:53

标签: c# icons save filestream extract

我知道这一定非常容易 - 令人难以置信的是,基于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个字节。再说一遍,我确信这一定非常容易,但对于我的生活,我无法弄明白。

谢谢!

1 个答案:

答案 0 :(得分:13)

如果在未先转换为位图的情况下保存图标,您将获得更好的效果。这是因为“图标”可以包含多个尺寸,而位图是转换期间选择的单个尺寸。

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

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