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

我知道这一定非常容易 – 令人难以置信的是,基于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);