Windows phone7中文件的存储模式是独立的,即独立存储空间(IsolatedStorage)。对文件夹与文件操作,需要借助IsolatedStorageFile类。 IsolatedStorageFile提供了对独立存储的空间获取,文件夹的删除、移动,文件的创建、删除等IO操作。 在Windows phone7中对文件的操作,都需要引入命名空间System.IO.IsolatedStorage和System.IO。

在System.IO.IsolatedStorage 命名空间下有以下几种类: (详细了解:https://msdn.microsoft.com/zh-cn/library/system.io.isolatedstorage%28VS.95%29.aspx)

   1.IsolatedStorageFile 类 表示包含文件和文件夹的独立存储区,用于操控独立存储空间文件夹和文件。

  2.IsolatedStorageFileStream 类 表示公开独立存储中的文件,用于读写操控独立存储空间里的文件流。

  3.IsolatedStorageSettings 类 提供一个在独立存储中存储键/值对的 Dictionary<TKey, TValue>,用于存储应用程序的配置信息的Dictionary。

  4.IsolatedStorageException 类 用于检测独立存储中的操作失败时所引发的异常。

在Windows phone7中对文件的操作一般有以下几个步骤:

  1.首先引入命名空间System.IO.IsolatedStorage和System.IO;

  2.获取应用程序的独立存储空间,调用静态方法GetUserStoreForApplication()返回IsolatedStorageFile对象;

  3.利用获取的独立空间对象提供的方法进行IO操作(如果涉及文件流操作,应在文件流操作结束后将文件流关闭);

  4.对文件操作出现异常进行捕获。

文件夹与文件操作 对文件夹与文件的操作基于IsolatedStorageFile 类对象,常用方法有:

  CopyFile(String, String):将现有文件复制到新文件。

  CopyFile(String, String, Boolean):将现有文件复制到新文件,还可以覆盖现有文件。

  CreateDirectory:在独立存储范围中创建目录。

  CreateFile:在独立存储区中创建文件。

  DeleteDirectory:删除独立存储范围中的目录。

  DeleteFile:删除独立存储区中的文件。

  DirectoryExists:检查指定的路径是否指的是独立存储区中的现有目录。

  FileExists:检查指定的路径是否指的是独立存储区中的现有文件。

  MoveDirectory:将指定的目录及其内容移到新位置。

  MoveFile:将指定文件移到新位置,还可以允许您指定新文件名。

  OpenFile(String, FileMode): 在指定的模式中打开文件。

  OpenFile(String, FileMode, FileAccess):以指定的文件访问权限在指定的模式下打开文件。

  其中在进行写入文件操作时,操作稍微复杂一些。 文件的写入是以流的方式写入的,进行写入操作时首先用IsolatedStorage提供的IsolatedStorageFileStream 文件流操作类打开该文件; 然后再使用StreamWriter类将打开的文件对对象进行数据写入;最后关闭文件流。

在文件的读取操作和文件的写入步骤基本相同,使用StreamReader类进行读取,最后也是需要关闭文件流。

下面通过例子了解文件夹与文件操作实现过程

文件夹操作:

   MainPage.xaml.cs主要代码

  1. //创建文件夹
  2. void CreateButton_Click(object sender, RoutedEventArgs e)
  3. {
  4. using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
  5. {
  6. file.CreateDirectory(dir);
  7. }
  8. }
  9.  
  10. //查检文件夹
  11. void ExistsButton_Click(object sender, RoutedEventArgs e)
  12. {
  13. using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
  14. {
  15. if (file.DirectoryExists(dir))
  16. {
  17. MessageBox.Show("文件夹存在!");
  18. }
  19. else
  20. {
  21. MessageBox.Show("文件夹不存在!");
  22. }
  23. }
  24.  
  25. //删除文件夹
  26. void DeleteButton_Click(object sender, RoutedEventArgs e)
  27. {
  28. using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
  29. {
  30. file.DeleteDirectory(dir);
  31. }
  32. }

文件操作:
  MainPage.xaml.cs

  1. //新建文件
  2. void NewButton_Click(object sender, RoutedEventArgs e)
  3. {
  4. using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
  5. {
  6. IsolatedStorageFileStream FileStream= file.CreateFile(textBox.Text + ".txt");
  7. //关闭文件流
  8. FileStream.Close();
  9. }
  10. }
  11. //检查文件
  12. void CheckButton_Click(object sender, RoutedEventArgs e)
  13. {
  14. using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
  15. {
  16. if (file.FileExists(textBox.Text + ".txt"))
  17. {
  18. MessageBox.Show("文件已经存在");
  19. }
  20. else
  21. {
  22. MessageBox.Show("文件不存在");
  23. }
  24.  
  25. }
  26. }
  27.  
  28. //写入文件
  29. void WriteButton_Click(object sender, RoutedEventArgs e)
  30. {
  31. try
  32. {
  33. using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
  34. {
  35. //打开文件
  36. using (IsolatedStorageFileStream FileStream = file.OpenFile(FileNameTextBox.Text + ".txt", FileMode.Open, FileAccess.Write))
  37. {
  38. //实例化StreamWriter类
  39. StreamWriter streamWriter = new StreamWriter(FileStream);
  40. //使用WriteLine方法使用
  41. streamWriter.WriteLine(ContentTextBox.Text);
  42. //写入完成后需要关闭
  43. streamWriter.Close();
  44. }
  45. }
  46.  
  47. }
  48. catch (IsolatedStorageException ex)
  49. {
  50. MessageBox.Show(ex.ToString());
  51.  
  52. }
  53. }
  54.  
  55. //读取文件
  56. void ReadFilePage_Loaded(object sender, RoutedEventArgs e)
  57. {
  58. using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
  59. {
  60. if (file.FileExists(NavigationContext.QueryString["file"].ToString()))
  61. {
  62. //打开文件
  63. using (IsolatedStorageFileStream FileStream = file.OpenFile(NavigationContext.QueryString["file"].ToString(), FileMode.Open, FileAccess.ReadWrite))
  64. {
  65. StreamReader streamReader = new StreamReader(FileStream); //实例化streamReader类
  66. this.ContentTextBlock.Text = streamReader.ReadLine(); //使用ReadToEnd()方法读取内容
  67. streamReader.Close();//关闭文件流
  68. }
  69. }
  70. else
  71. {
  72. MessageBox.Show(NavigationContext.QueryString["file"].ToString() + "文件不存在");
  73. }
  74. }
  75. }

Windows phone开发之文件夹与文件操作系列(一)文件夹与文件操作的更多相关文章

  1. windows 10 开发学习资料,Windows-universal-samples学习笔记系列一:App settings

    windows 10 通用代码范例: https://github.com/Microsoft/Windows-universal-samples 相关视频:https://mix.office.co ...

  2. Windows 10开发基础——文件、文件夹和库(一)

    原文:Windows 10开发基础--文件.文件夹和库(一) 主要内容: 1.枚举查询文件和文件夹 2.文本文件读写的三种方法——创建写入和读取文件 3.获得文件的属性 枚举查询文件和文件夹 先了解一 ...

  3. Windows内核开发中如何区分文件对象究竟是文件还是文件夹?

    今天有同行问了一个问题,Windows文件过滤驱动里的如何去区分一个对象是文件还是文件夹?我花了1小时左右翻阅了一些微软的文档以及以前的遗留代码,发现在WDK的帮助文档中是这么定义的: FILE_OB ...

  4. Windows 10开发基础——文件、文件夹和库(二)

    主要内容: 使用选取器打开和保存文件 关于文件.文件夹和库,如果深究其实还是有比较多的内容,我们这一次来学习一下选取器就收了.还有上篇博文中读写文本文件的三种方式可以细细体会一下. 文件选取器包含文件 ...

  5. Windows Store 开发总结——文件操作

    1.读取Isolated Storage 每个Metro程序都有三个文件夹:Local,Roaming,Temp.每个文件夹的访问方法都是相同的. Local用于将数据存储在本地,这是程序特定的文件夹 ...

  6. windows资源管理器多标签打开 windows文件夹多标签浏览 浏览器tab页面一样浏览文件夹 clover win8 win10 报错 无响应问题怎么解决 clover卡死 clover怎么换皮肤

    大家都知道,我们打开一堆文件夹的时候,是什么样子 “厚厚的一叠”图标堆叠在一起的,非常的不方便 那么,是不是可以像浏览器一样的tab页面展示呢? 答案是可以的 安装好就是这样子的 是不是方便漂亮了很多 ...

  7. Windows App开发之文件与数据

    读取文件和目录名 这一节開始我们将陆续看到Windows App是如何操作文件的. 在Windows上读取文件名称.目录名 首先我们在XAML中定义一个Button和TextBlock,将读取文件/目 ...

  8. win10用户文件夹重命名,启用administrator账户,删除文件夹时提示找不到该项目

    这一切都源自楼主洁癖一般的强迫症. 楼主在重置win10后的安装过程中用microsoft账户登录的电脑,发现用户文件夹名称怪怪的,于是想重命名一下.楼主发现重命名用户文件夹并不能简单地用F2搞定,于 ...

  9. Outlook不能打开附件(提示:无法创建文件xx,请右键单击要在其中创建文件的文件夹..)

    问题分析: 出现这种问题的几率很小,除非你是每天都需要使用Outlook的办公人员.出现这种问题我想有如下两种可能.1.注册表中指定的附档临时保存的目录没有写入的相关权限.2.同名附档已存在且权限出现 ...

随机推荐

  1. js 简单小知识

    1. javascript的typeof返回哪些数据类型: string, boolean, number, undefined, function, object 2. split() join() ...

  2. 【JavaScript进阶】深入理解JavaScript中ES6的Promise的作用并实现一个自己的Promise

    1.Promise的基本使用 // 需求分析: 封装一个方法用于读取文件路径,返回文件内容 const fs = require('fs'); const path = require('path') ...

  3. centos中安装tomcat

    1.先保证centos中安装了jre的环境. 2.上传tomcat的压缩包到root根目录. 3.切换到根目录 输入命令cd ~ , 然后 ll , 查看上传情况: 4.选中复制压缩文件,输入解压命令 ...

  4. 第三节:numpy之数组数学运算

  5. java常见知识

    在JSP页面获取当前项目名称的方法: 方法1: <%= this.getServletContext().getContextPath() %> 方法2: 使用EL表达式 ${pageCo ...

  6. web开发如何使用百度地图API(一)判断点是否在范围内

    准备工作 注册开发者 创建应用 拿到百度地图ak 前端实现方案 引入百度地图API和工具类库 <script type="text/javascript" src=" ...

  7. Jmeter 学习imooc

    https://www.imooc.com/video/14718 1. BS Vs CS BS架构: browser server CS架构: Client server(安装到本地)

  8. 解决maven打包编译出现File encoding has not been set问题

    maven打包编译时后台一直输出警告信息 [WARNING] File encoding has not been set, using platform encoding GBK, i.e. bui ...

  9. hibernate之单表映射

    目录 第一章 Hibernate初识 1-1 课程介绍 1-2 什么是ORM 1-3 Hibnerate简介 1-4 开发前的准备 1-5 编写第一个Hibernate例子 1-6 创建hiberna ...

  10. JDK工具jstatd用法详解(转)

    jstatd,即虚拟机的jstat守护进程,主要用于监控JVM的创建与终止,并提供一个接口允许远程监控工具依附到在本地主机上运行的JVM. 用法摘要 jstatd [ options ] option ...