Windows Phone读取本地资源文件

移动开发
我们不喜欢把这些资源硬编码到代码里,比如一个城市列表“北京-Beijing、上海-Shanghai、……”,如果硬编码到代码里显然不如弄到XML(或者JSON,甚至是TXT文件)里灵活。尽管这种资源可以从网络上获取,但对于操作频繁的操作还是做到本地比较好(然后再加载到内存中显然更好),何况这种资源也不是很大。WP7读取本地资源文件,步骤很简单。

在开发过程中我们经常需要用到很多资源文件,比如城市名字和拼音对应列表等等。

这类文件为什么要作为本地资源文件用呢?一般是因为:

1、我们不喜欢把这些资源硬编码到代码里,比如一个城市列表“北京-Beijing、上海-Shanghai、……”,如果硬编码到代码里显然不如弄到XML(或者JSON,甚至是TXT文件)里灵活。

2、尽管这种资源可以从网络上获取,但对于操作频繁的操作还是做到本地比较好(然后再加载到内存中显然更好),何况这种资源也不是很大。

WP7读取本地资源文件,步骤很简单。比如我们有一个city.xml需要读取:

首先,把此文件Copy到我们的项目中,然后设置它的属性{复制到输出目录:始终复制,生成操作:Resource}(当然,也可以设置成如果较新则复制,个人感觉使用效果上没什么区别)

然后,代码中调用:

  1. StreamResourceInfo reader = Application.GetResourceStream(new Uri("/{你的项目名字};component/{文件的路径}", UriKind.Relative)); 
  2. XElement xml = XElement.Load(reader.Stream);  

读取txt文件

如果在项目中附加一个文件的时候,需要设置文件的Build Action属性,如果设置为content ,你会在“bin”文件夹中的xap包中 发现此文件;(xap:把xap文件后加上.zip会变成一个压缩包,解压后会发现里面的内容)如果设置为resource,文件会添加到项目文件的 dll文件中。

  1. //读取属性Build Action为content的txt文件           
  2.  //用stream获取文件的二进制流            
  3. Stream st = Application.GetResourceStream(new Uri("files/firle1.txt", UriKind.Relative)).Stream;            
  4. string str = new StreamReader(st).ReadToEnd();           
  5. MessageBox.Show(str);            
  6. //读取属性Build Action为Resource的txt文件            
  7. Stream st1 = Application.GetResourceStream(new Uri("/demo(项目名称);component/files/firle2.txt", UriKind.Relative)).Stream;            
  8. string str1 = new StreamReader(st1).ReadToEnd();            
  9. MessageBox.Show(str);  

图片文件可以通过URI访问

添加引用

  1. using System.Windows.Media.Imaging;     
  2. Uri uri = new Uri("/image/text.jpg", UriKind.Relative);            
  3. BitmapImage bmp = new BitmapImage(uri);           
  4.  image1.Source = bmp;    

XML文件可以借助XElement.Load()方法访问

多媒体文件可以通过MediaPlayerElement控件访问;

责任编辑:闫佳明 来源: wpdever
相关推荐

2013-06-17 17:02:15

Windows PhoWP开发资源文件

2009-08-21 16:13:27

C#读取资源文件

2020-08-25 07:16:20

Python资源文件文件

2013-07-30 11:30:42

Windows PhoWindows Pho

2013-04-17 14:00:06

Windows PhoWindows Pho

2011-06-20 14:18:27

Qt 资源 文件

2012-02-03 09:55:06

Delphi

2011-08-15 14:47:28

Cocoa嵌入资源文件

2009-06-02 14:21:04

eclipse资源文件eclipse中文

2009-08-28 16:08:28

C#利用资源文件

2009-12-28 11:23:38

WPF资源文件

2011-05-27 14:09:55

Windows PhoBing微软

2011-06-14 08:54:46

MangoWindows Pho

2009-08-12 16:44:13

.NET文件类型

2020-05-20 08:57:14

JavaScript读取文件开发

2009-06-19 16:12:22

Java语言properties

2010-01-04 16:23:42

Silverlight

2009-10-28 11:27:34

VB.NET资源文件

2009-06-05 09:40:59

2010-01-15 18:50:25

VB.NET资源文件
点赞
收藏

51CTO技术栈公众号