将嵌入式.ico导出到磁盘

时间:2013-03-20 02:54:46

标签: c# resources

如何导出嵌入在Resources.resx中的嵌入式.ico图标文件?我找到了这个例子,但我不确定targetAssembly部分是什么。

如果有人能在这里给我一些指示,那将非常有帮助。

public static void WriteResourceToFile(Assembly targetAssembly, string resourceName, string filepath)
    {

        using (Stream s = targetAssembly.GetManifestResourceStream(targetAssembly.GetName().Name + "." + resourceName))
        {

            if (s == null)
            {

                throw new Exception("Cannot find embedded resource '" + resourceName + "'");

            }

            byte[] buffer = new byte[s.Length];

            s.Read(buffer, 0, buffer.Length);

            using (BinaryWriter sw = new BinaryWriter(File.Open(filepath, FileMode.Create)))
            {

                sw.Write(buffer);

            }

        }

    }

1 个答案:

答案 0 :(得分:2)

看起来(根据您对Jeremy的回答的评论)您已经在应用程序属性中存储了Icon。如果是这种情况,则无需手动查找并将其解析出正在执行的程序集。

如果您查看Icon Documentation,您会看到它有一个名为Save(...)的方法。有点方便不是吗?

将其保存到磁盘就像打开FileStream并致电Save一样简单。

在你的情况下:

using (var fStream = new FileStream(Path.Combine(userDir, "iconName.ico"), FileMode.OpenOrCreate, FileAccess.Write))
{
    Properties.Resources.iconName.Save(fStream);
}

简单的东西,只需阅读文档。