1、嵌入資源
首先,我們來(lái)看一個(gè)簡(jiǎn)單的示例,了解如何實(shí)現(xiàn)嵌入。假設(shè)要在基于 Windows? 窗體的應(yīng)用程序中嵌入一個(gè)名為1.jpg 的圖形圖像。首先,要將該文件添加到 Visual Studio? 項(xiàng)目中。然后,在該文件的屬性表中,將生成方式設(shè)置為嵌入的資源,如圖 1 所示。這樣,就指示 Visual Studio 將該文件嵌入輸出程序集 .exe 文件的物理圖像了。
一旦將某個(gè)文件作為資源嵌入,就必須了解如何在運(yùn)行時(shí)訪問(wèn)它。請(qǐng)參見(jiàn)以下代碼片段,它先獲得對(duì)當(dāng)前程序集對(duì)象的引用,然后調(diào)用 GetManifestResourceStream 方法以獲得對(duì)嵌入的資源文件基于流的訪問(wèn)。該代碼假定導(dǎo)入了 System.Reflection 和 System.IO 命名空間:
2、調(diào)用方式:
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,
調(diào)用如下:
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類(lèi)來(lái)讀取文件
m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin);
// 從數(shù)據(jù)流中讀取每一行,直到文件的最后一行,并在richTextBox1中顯示出內(nèi)容
string strLine = m_streamReader.ReadLine();
while (strLine != null)
{
str += strLine + "\n";
strLine = m_streamReader.ReadLine();
}
//關(guān)閉此StreamReader對(duì)象
m_streamReader.Close();
return str;
}
private void button4_Click(object sender, EventArgs e)
{
MessageBox.Show(getStrByResFileName("OracleToAccess.sqlfnc.txt"));
}
聯(lián)系客服