Windows 8 Metro App开发[6]访问Assets文件夹

本文介绍如何在Windows 8 Metro应用中访问Assets文件夹内的资源文件,包括使用StorageFolder类读取XML文件的方法及示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:本系列学习帖子我在DevDiv.com移动开发社区原创首发

转载请注明出处:BeyondVincent(破船)@DevDiv.com

如果你有什么问题也可以前往交流

下面是首发地址:

[DevDiv原创]Windows 8 Metro App开发Step by Step---(13个学习帖子)



一般当你开始以XAML形式开发Windows 8 Metro App时,在你的工程里面可能会包含一些文件,例如用于显示的图片,数据和xml文件的读取。如下图,是我以Blank App模版创建的一个程序截图。



今天我就来跟大家分享一下,如何访问Assets文件夹以及里面的文件。



更多内容请查看下面的帖子


Windows 8 Metro App开发Step by Step


Windows.Storage名称空间

我们首先需要认识一下Windows.Store名称空间。

如果你去阅读微软MSDN上提供的文档Windows.Storage文档你会发现里面有一个StorageFolder类,通过该类,我们可以操作文件夹和相关的内容。StorageFolder类有一个方法叫做StorageFolder.CreateFileAsync,这个方法会在当前文件夹中异步的创建一个文件。同时,你也会看到,这里有获取文件内容,读取文件属性等方法。

在这里我会在Assets目录中添加一个XML文件1.xml,然后将其读取出来并显示在TextBox中。

首先,我们需要获取Assets文件夹安装的路径。可以通过下面的代码获取。

StorageFolder InstallationFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;

然后 就是从Assets目录的文件1.xml中读取出数据。
string CountriesFile = @"Assets\1.xml";
StorageFolder InstallationFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFile file = await InstallationFolder.GetFileAsync(CountriesFile);
Stream Countries = await file.OpenStreamForReadAsync();

在这里我把文件内容转换为stream,并使用Linq XML从XML中读取数据。

下面我给出完成的代码片段:
public async void LoadCountriesXML()
{
  string CountriesFile = @"Assets\1.xml";
  StorageFolder InstallationFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
  StorageFile file = await InstallationFolder.GetFileAsync(CountriesFile);
  Stream Countries = await file.OpenStreamForReadAsync();

  XDocument xDOC = XDocument.Load(Countries);

  testXml.Text = xDOC.ToString();
}

这里需要特别注意的是asyncawait两个关键字,这两个是C#中新的关键字,在这里我们只需要知道在调用异步函数的时候需要使用到,后续的学习系列中我会对async和await进行详细的讲解。

下面我们就来看看程序运行的效果
第一个图是1.xml文件中的内容,第二个图是程序运行起来,显示出的xml内容。




示例代码

DevDiv_AccessAssets.rar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值