從資源檔案裡載入檔案或讀取資源(C )

2021-07-24 16:41:38 字數 1593 閱讀 6925

從資源檔案裡載入檔案(c#)

用途:1.

在進行多國語言化的時候

.( 通常把不同翻譯的文字存放到資源包裡.)

2.將打包進

dll的時候

(icon

等,自定義控制項..)

資源檔案格式: .resx||.resources

打包資源檔案:

system.resources.resourcewriter rw = new resourcewriter(@"../../abc.resources");

rw.addresource("abc", new byte[10000000]);

rw.generate();

rw.close();

說明:建立乙個resourcewriter的物件用於寫資源檔案。檔案的字尾名必須是.resources,不讓其它的系統無法識別。然後是通過addresource的方法寫資源資訊,這個資訊可以是乙個字串,也可以是乙個byte陣列,甚至可以是乙個物件(image)。新增好以後就是generate和close了。這樣執行程式後,資源檔案就製作完成了。

如果不需要把這個資源檔案打包到exe程式或者dll程式裡面,可以使用system.resources.resourcereader讀取資源檔案資訊。

獲取資源檔案

資源檔案打包好以後,下一步是把資源檔案整合到專案裡。方法有兩個,乙個是用控制台的方式編譯專案,通重載入資源檔案的方式把資源載入到exe裡,另外乙個簡單很多,就是把直接把資源檔案載入到工程裡,vs會根據字尾名識別出來載入的檔案屬於資源檔案,在進行編譯的時候會自動把這個檔案打包到資源檔案裡。如果編譯後發現資源檔案沒有加到exe檔案,可以設定資源檔案的屬性,把build action的屬性設定為embedded resource。

在當前專案中讀取資源:

this

.icon = properties.

resources

.exeicon;||

this

.text = 

resource1

.string1.tostring();//

主要是字串

資源檔案成功加到exe檔案後,下一步就是在程式裡讀取資源檔案。

system.resources.

resourcemanager

rm = 

newsystem.resources.

resourcemanager

("resunce.abc"

, this

.gettype().assembly);

byte

bit = rm.getobject(

"abc"

) as

byte;

說明:通常是建立乙個resourcemanager的物件,第乙個引數是資源的名字,這裡要注意的是「resunce」是編譯的時候,元件(命名空間)名字,「abc」是資源檔案的名字。如果前面不是通過vs的工程檔案進行編譯,而是通過控制台方式直接編譯,那麼資源的名字不需要帶元件的名字,只是「abc」就可以了。原因嗎,我估計可能是vs在進行編譯的時候,帶了某些引數(確定了元件名),所以在專案讀取資源檔案的時候需要帶元件名。

頂 0 踩

從資源檔案裡載入檔案(C )

1 概述 資源檔案很早就有了,在。net時代裡這個東西也不算稀奇,在進行多國語言化的時候 通常把不同翻譯的文字存放到資源包裡。以前資源檔案除了放字串以外,還可以放檔案。不過在c 的工程裡面,資源管理面板是空的 vc 工程裡資源面板可以使用 無法直接編輯資源屬性,不過每個winform都會帶乙個.re...

讀取資源檔案

資源檔案在存放彈出資訊很有用,以下是讀資源檔案的簡單 dim rm as resourcemanager new resourcemanager readresx.message system.reflection.assembly.getexecutingassembly dim ci as cu...

iOS資源檔案載入

資源檔案配置 s.resource bundles 其中resource bundles中的bundle檔案是以陣列的形式處理 其中bundlename是自定義的 後面是對應路徑下的資源檔案 可以把resource下面對應不同的xib檔案和image檔案 資源檔案載入 對於xib和image載入的方...