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