我已经通过创建test.zip
并将Resource1.resx
添加到了C#项目并拖到了resx标签。它现在在解决方案资源管理器中显示为Resources
的子项。
当程序运行时,我想将它从.exe移动到计算机上的某个位置,如“我的文档”。
我觉得在将资源写入文件之前需要将资源转换为内存流,但我不确定如何将该文件作为资源或如何转换它。
我认为以下提取资源对象(然后,无论第一个参数是什么,它都不会出错)但我不确定如何继续:< / p>
var resource = new ResourceManager("test", Assembly.GetExecutingAssembly());
答案 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);