如何嵌入文件然后将其保存到某个位置?

时间:2014-03-16 19:20:53

标签: c# .net visual-studio embedded-resource memorystream

我已经通过创建test.zip并将Resource1.resx添加到了C#项目并拖到了resx标签。它现在在解决方案资源管理器中显示为Resources的子项。

当程序运行时,我想将它从.exe移动到计算机上的某个位置,如“我的文档”。

我觉得在将资源写入文件之前需要将资源转换为内存流,但我不确定如何将该文件作为资源或如何转换它。

认为以下提取资源对象(然后,无论第一个参数是什么,它都不会出错)但我不确定如何继续:< / p>

var resource = new ResourceManager("test", Assembly.GetExecutingAssembly());

2 个答案:

答案 0 :(得分:1)

您应该使用Assembly.GetManifestResourceStream

using (Stream x = Assembly.GetExecutingAssembly().GetManifestResourceStream("test"))
{
    ...
}

参考MSDN

答案 1 :(得分:1)

由于您激活资源已经ResourceManager。只需使用GetObject方法,获取文件的字节并将其写入File.WriteAllBytes的新文件:

var bytes =  Properties.Resources.ResourceManager.GetObject("resourceName") as byte[];
File.WriteAllBytes("newFile.zip", bytes);