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

本文关键字:保存 位置 何嵌入 文件 然后 | 更新日期: 2023-09-27 17:50:27

我通过创建Resource1.resx并拖动到resx选项卡将test.zip添加到c#项目中。它现在在解决方案资源管理器中作为Resources的子元素可见。

当程序运行时,我想把它从。exe文件移到计算机上的一个位置,比如我的文档。

我有一种感觉,我需要将资源转换为内存流,然后才能将其写入文件,但我不确定如何访问文件作为资源或如何转换它。

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

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

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

既然你已经激活了资源,你已经有了一个ResourceManager .只需使用GetObject方法,获得你的文件的字节,并将它们写入一个新的文件与File.WriteAllBytes:

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

您应该使用Assembly.GetManifestResourceStream

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

对MSDN的引用