教你如何在VB.NET可執行文件中嵌入一個文本文件
經過長時間學習VB.NET,于是和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會你更多東西。以前我做程序,版權使用協議信息總是放在一個txt文本文件中,打包時和可執行文件放在一起,在安裝時釋放到程序的安裝路徑,然后再打開使用。這種做法有兩大壞處,一是這個文件很容易被其它人修改,二是話這種做法太不成熟了?,F在我使用一個新的方法,就是將協議和可執行文件結合在一起,在程序運行時讀出使用,當然這就全靠資源的作用了。
示例 在net中可執行文件中嵌入一個文本文件步驟如下:
1、在VB.net中新建一個項目,類型選擇windows應用程序,項目名稱改為resourcesample2。
2、點擊項目菜單,選擇添加現有項,接著會彈出一個文件對話框,將文件類型改為所有文件后,選擇要嵌入的txt文件(其實這時你可選擇任意文件,只要你喜歡*-)。接著你會在解決方案資源管理器中發現你新加入的文件名。如圖:
3、關鍵的一步到了,在解決方案資源管理器中點擊你剛加入的文件名,然后在屬性窗體中將 "加成操作" 這一屬性改為"嵌入的資源",這將告訴net,剛加入的文件將會作為資源鏈接進VB.NET可執行文件中。留意一下文件名哦,這在后面的程序中也很重要,強烈建議使用小寫文件名!如下圖:
4、接下就是在程序中用代碼讀出這個文件的內容。
在Form1_Click事件中加入代碼,如下所示:
- Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click
- Dim tobjStream As IO.Stream = Me.GetType.Assembly.GetManifestResourceStream("resourcesample2.License.txt")
- Dim tobjStreamReader As New IO.StreamReader(tobjStream, System.Text.Encoding.Default)
- Dim tstrLicense As String = tobjStreamReader.ReadToEnd
- '如果是圖象就可以使用dim tobjBMP as new bmp(tobjstrem)的方法直接得到資源內容
- MessageBox.Show(tstrLicense)'顯示剛才讀得的結果
- End Sub
在此對上述代碼進行一點解釋,net是通過Assembly的GetManifestResourceStream讀出嵌入在VB.NET可執行文件的資源并以IO.Stream對象返回(反正得到了這個流,就好象你時進行文件流操作,讀/寫到磁盤或象我一樣在程序內部處理都由你自己決定了)。這個方法的唯一參數是資源的唯一標識,是按如下方式組成的:程序集的根命名空間+"."+資源在屬性窗口顯示的文件名(這是區分大小寫的,在上文已提醒你注意了哦,而且這個標識法在C#中是不同的,別問我為什么,誰叫你不和我一樣使用VB.net,哼8-)。
程序集的根命空間的名你可以從項目菜單下的XXXX(XXXX是你的項目名稱,可不要認為是罵人的話8-)屬性中看到:
其余的代碼就是以流方式讀文件了,很簡單吧。
5、按生成菜單下的生成解決方案,然后到你可執文件的目錄下看看,你會發現除了可執行文件外沒有別的文本文件,因為文本文件已以資源的方式存在于VB.NET可執行文件中啦。運行一下看看效果?。ㄒ恍┫胱龊诳偷牟锁B又有什么怪怪的想法,藏木馬?……)
資源的使用就介紹到此為至吧,窗外依然小雨菲菲,在虛幻的網絡和殘酷的現實邊緣排徊久了,寫文章都有點怪怪的,請大伙兒原諒,祝大伙編程愉快。
【編輯推薦】