Windows Phone笔记(10)使用独立存储(中)(转)

Windows Phone笔记(10)使用独立存储(中)

 

  在我们前面的笔记中了解如何通过使用IsolatedStorageSettings类来保存应用程序设置,也知道独立存储还可以通过使用使用 IsolatedStorageFile类存储文件和文件夹。在这篇笔记中,让我们一起来了解并学会使用IsolatedStorageFile类来存储文件和文件夹。

1.使用 IsolatedStorageFile类存储文件和文件夹

  由于涉及到了I/O操作,我们首先需要在项目中引用到System.IO和IsolatedStorageFile类所在的System.IO.IsolatedStorage这两个命名空间。下面我们通过一个示例来了解如何使用IsolatedStorageFile类来存储文件和文件夹。

  在示例中我们在文本框中输入文件,点击保存,然后再把保存的文本读取并显示出来。首先给出我们的前台MainPage.xaml的代码:

 

复制代码
 1       <!--ContentPanel - 在此处放置其他内容-->
2 <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
3 <StackPanel>
4 <Grid Margin="0 15" Height="300">
5 <TextBox Width="450" Height="72" VerticalAlignment="Top" Name="txtWrite"/>
6 <Button Width="200" Height="72" Content="保存数据" VerticalAlignment="Center" Name="btnSave" Click="btnSave_Click"/>
7 </Grid>
8 <Grid Height="350" Margin="0 15">
9 <TextBlock Width="200" Height="72" VerticalAlignment="Top" HorizontalAlignment="Center" FontSize="32" Name="txtRead"/>
10 <Button Width="200" Height="72" Content="读取数据" VerticalAlignment="Center" Name="btnRead" Click="btnRead_Click"/>
11 </Grid>
12 </StackPanel>
13 </Grid>
复制代码

 

然后是MainPage.xaml.cs后台处理程序:

复制代码
 1       /// <summary>
2      /// 将文本框中的文本写入到文件中
3      /// </summary>
4      /// <param name="sender"></param>
5      /// <param name="e"></param>
6 private void btnSave_Click(object sender, RoutedEventArgs e)
7 {
8 // 获取应用程序的虚拟存储
9 IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication();
10
11 // 在独立存储中创建一个新的文件夹
12 myStore.CreateDirectory("TestFolder");
13
14 // 指定文件路径和选项
15 using (var isoFileStream = new IsolatedStorageFileStream(@"TestFolder\myTestFile.txt", FileMode.OpenOrCreate, myStore))
16 {
17 //写入数据
18 using (var isoFileWriter = new StreamWriter(isoFileStream))
19 {
20 isoFileWriter.WriteLine(txtWrite.Text);
21 }
22 }
23 }
24
25 /// <summary>
26     /// 读取写入的文件
27      /// </summary>
28      /// <param name="sender"></param>
29      /// <param name="e"></param>
30 private void btnRead_Click(object sender, RoutedEventArgs e)
31 {
32 // 获取应用程序的虚拟存储
33 IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication();
34 try
35 {
36 // 读取指定目录的指定文件
37 using (var isoFileStream = new IsolatedStorageFileStream(@"TestFolder\myTestFile.txt", FileMode.Open, myStore))
38 {
39 // 读取数据
40 using (var isoFileReader = new StreamReader(isoFileStream))
41 {
42 txtRead.Text = isoFileReader.ReadLine();
43 }
44 }
45 }
46 catch
47 {
48 //异常处理
49 txtRead.Text = "请预先创建文件和文件夹";
50 }
51 }
复制代码

编译运行程序:

  

可以看到我们已经成功创建一个文件夹和txt文件,并且在txt文件中写入了数据。但是我们真的在手机存储开中创建了一个这样的文件吗?微软在Windows Phone中的存储控制是很严格的,我们并不能够直接查看我们在独立存储中创建的文件,不过我们可以通过一个使用Windows Phone SDK自带的:独立存储资源管理器可列出、复制和替换独立存储中的文件和目录,下面我们就将我们的创建的文件复制到我们的电脑中。

 

2.使用独立存储资源管理器(ISETool.exe)将独立存储中创建的文件复制到电脑中

  根据操作系统的不同,独立存储资源管理器的安装位置在:

  • Program Files\Microsoft SDKs\Windows Phone\v7.1\Tools\IsolatedStorageExplorerTool

  • Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\IsolatedStorageExplorerTool

首先我们打开模拟器,确保我们的前面的应用程序已经部署在模拟器中,并且已经在独立存储中创建了文件,之后,打开命令行,进入到独立存储资源管理器的安装目录中,例如在我的电脑中是:

 

接着获取应用程序的 Product GUID,因为在下面的命令中我们需要使用到它,在Properties文件夹下的WPAppManifest.xml 文件的 App 元素的 ProductID 属性的值,选中复制。然后在命名行中接着输入:

              ISETool.exe ts xd 应用程序的ProductId属性值 "电脑上的路径"

这我这里是这样:

 

然后回车,命令成功后如下所示:

打开我们复制到的目录我们可以看到已经成功的把创建的文件从Windows Phone中复制到本地:

 

猛击下载:示例源码

参考资料:

  http://msdn.microsoft.com/zh-cn/library/ff626519(v=vs.92).aspx(重要)

  http://msdn.microsoft.com/zh-cn/library/hh286408(v=vs.92).aspx

  http://msdn.microsoft.com/zh-cn/library/ff769544(v=vs.92).aspx(重要)

作者:晴天猪

出处:http://www.cnblogs.com/IPrograming 

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

posted on 2012-05-03 17:18  voker  阅读(171)  评论(0编辑  收藏  举报

导航