Windows Phone讀取本地資源文件
在開(kāi)發(fā)過(guò)程中我們經(jīng)常需要用到很多資源文件,比如城市名字和拼音對(duì)應(yīng)列表等等。
這類(lèi)文件為什么要作為本地資源文件用呢?一般是因?yàn)椋?/p>
1、我們不喜歡把這些資源硬編碼到代碼里,比如一個(gè)城市列表“北京-Beijing、上海-Shanghai、……”,如果硬編碼到代碼里顯然不如弄到XML(或者JSON,甚至是TXT文件)里靈活。
2、盡管這種資源可以從網(wǎng)絡(luò)上獲取,但對(duì)于操作頻繁的操作還是做到本地比較好(然后再加載到內(nèi)存中顯然更好),何況這種資源也不是很大。
WP7讀取本地資源文件,步驟很簡(jiǎn)單。比如我們有一個(gè)city.xml需要讀?。?/p>
首先,把此文件Copy到我們的項(xiàng)目中,然后設(shè)置它的屬性{復(fù)制到輸出目錄:始終復(fù)制,生成操作:Resource}(當(dāng)然,也可以設(shè)置成如果較新則復(fù)制,個(gè)人感覺(jué)使用效果上沒(méi)什么區(qū)別)
然后,代碼中調(diào)用:
- StreamResourceInfo reader = Application.GetResourceStream(new Uri("/{你的項(xiàng)目名字};component/{文件的路徑}", UriKind.Relative));
- XElement xml = XElement.Load(reader.Stream);
讀取txt文件
如果在項(xiàng)目中附加一個(gè)文件的時(shí)候,需要設(shè)置文件的Build Action屬性,如果設(shè)置為content ,你會(huì)在“bin”文件夾中的xap包中 發(fā)現(xiàn)此文件;(xap:把xap文件后加上.zip會(huì)變成一個(gè)壓縮包,解壓后會(huì)發(fā)現(xiàn)里面的內(nèi)容)如果設(shè)置為resource,文件會(huì)添加到項(xiàng)目文件的 dll文件中。
- //讀取屬性Build Action為content的txt文件
- //用stream獲取文件的二進(jìn)制流
- Stream st = Application.GetResourceStream(new Uri("files/firle1.txt", UriKind.Relative)).Stream;
- string str = new StreamReader(st).ReadToEnd();
- MessageBox.Show(str);
- //讀取屬性Build Action為Resource的txt文件
- Stream st1 = Application.GetResourceStream(new Uri("/demo(項(xiàng)目名稱);component/files/firle2.txt", UriKind.Relative)).Stream;
- string str1 = new StreamReader(st1).ReadToEnd();
- MessageBox.Show(str);
圖片文件可以通過(guò)URI訪問(wèn)
添加引用
- using System.Windows.Media.Imaging;
- Uri uri = new Uri("/image/text.jpg", UriKind.Relative);
- BitmapImage bmp = new BitmapImage(uri);
- image1.Source = bmp;
XML文件可以借助XElement.Load()方法訪問(wèn)
多媒體文件可以通過(guò)MediaPlayerElement控件訪問(wèn);