C# Vs2005资源文件嵌入资源使用方法
1、嵌入资源
首先,我们来看一个简单的示例,了解如何实现嵌入。假设要在基于 Windows® 窗体的应用程序中嵌入一个名为1.jpg 的图形图像。首先,要将该文件添加到 Visual Studio® 项目中。然后,在该文件的属性表中,将生成方式设置为嵌入的资源,如图 1 所示。这样,就指示 Visual Studio 将该文件嵌入输出程序集 .exe 文件的物理图像了。
一旦将某个文件作为资源嵌入,就必须了解如何在运行时访问它。请参见以下代码片段,它先获得对当前程序集对象的引用,然后调用 GetManifestResourceStream 方法以获得对嵌入的资源文件基于流的访问。该代码假定导入了 System.Reflection 和 System.IO 命名空间:
2、调用方式:
private void button4_Click(object sender, EventArgs e)
{
Assembly asm = Assembly.GetExecutingAssembly();
string ResourceName = "OracleToAccess.1.jpg";
Stream pStream = asm.GetManifestResourceStream(ResourceName);
//'*** convert stream into image and load in '*** picture box
Image img = Image.FromStream(pStream);
pictureBox1.Image = img;
}
3、文本文件
如果为文本文件sqlfnc.txt,
调用如下:
public string getStrByResFileName(string ResourceName)
{
Assembly asm = Assembly.GetExecutingAssembly();
Stream pStream = asm.GetManifestResourceStream(ResourceName);
string str = "";
StreamReader m_streamReader = new StreamReader(pStream, System.Text.Encoding.GetEncoding("GB2312"));//中文乱码加上System.Text.Encoding.Default,或则System.Text.Encoding.GetEncoding("GB2312")
//使用StreamReader类来读取文件
m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin);
// 从数据流中读取每一行,直到文件的最后一行,并在richTextBox1中显示出内容
string strLine = m_streamReader.ReadLine();
while (strLine != null)
{
str += strLine + "/n";
strLine = m_streamReader.ReadLine();
}
//关闭此StreamReader对象
m_streamReader.Close();
return str;
}
private void button4_Click(object sender, EventArgs e)
{
MessageBox.Show(getStrByResFileName("OracleToAccess.sqlfnc.txt"));
}