Resources 资源文件的使用问题
开发环境:c#,windows form
后缀文件名称为.resources的文件,是一个资源文件,用来存放字符串、图片等资源,然后再程序中读取使用,其中,文件内的图片是使用二进制文件格式存放的。
问题一:如何创建用来存放字符串的资源文件
添加命名空间:using System.Resources;
定义一个函数,然后添加如下的代码
// D:\myResources.resources 为创建的文件存放的地点,代码执行完毕后,我们就可以在这里找到文件
IResourceWriter writer = new ResourceWriter(@"D:\myResources.resources");
//向资源中添加字符串资源
writer.AddResource("String1", "First String");
writer.AddResource("String2", "Second String");
writer.AddResource("String3", "Third String");
writer.Generate();
//添加写入流,释放资源
writer.Close();
//代码执行到这里,已经成功的创建的了一个由字符串组成的文件。
问题二:读取resources资源文件中字符串资源
1) 将文件添加到工程中
2) 然后打开文件的属性对话框
将Build Action属性修改为:Embedded Resources,表示将该文件编译成为嵌入式资源
3) 编写代码读取资源中的字符窜资源文件
System.Resources.ResourceManager rm = new
// WindowsFormsApplication1为应用程序的名称,myResources是我们创建的字符串资源的名称
ResourceManager("WindowsFormsApplication1.myResources",Assembly.GetExecutingAssembly());
//String1 是字符串资源的名称,相当于一个字符串键值对的key的值。
string tt = rm.GetString("String1");//tt就是stiring1字符串显示的内容。
问题三:创建图片资源
执行下面的代码,装载图片资源
//@"D:\myResources.resources" 指定创建的资源文件存放的位置
IResourceWriter writer = new ResourceWriter(@"D:\myResources.resources");
//指定加载的资源文件存放的位置
Image img = Image.FromFile(@"F:\Picture\1.jpg");
//写入资源
writer.AddResource("pic1", img);
img = Image.FromFile(@"F:\Picture\2.jpg");
writer.AddResource("pic2", img);
img = Image.FromFile(@"F:\Picture\3.jpg");
writer.AddResource("pic3", img);
//生成资源
writer.Generate();
//关闭写入流,释放系统资源
writer.Close();
问题四:读取资源文件中的图片
System.Resources.ResourceManager rm = new
// WindowsFormsApplication1应用程序的名称,
// BitmapResources为存放图片资源的文件扩展名称为:.resources文件的名称。
ResourceManager("WindowsFormsApplication1.BitmapResources",Assembly.GetExecutingAssembly());
//读取名称为pic1图片文件
this.pictureBox1.Image = (Bitmap)rm.GetObject("pic1");