Windows phone开发之文件夹与文件操作系列(一)文件夹与文件操作

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  //查检文件夹
12 void ExistsButton_Click(object sender, RoutedEventArgs e)
13 {
14    using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
15     {
16       if (file.DirectoryExists(dir))
17         {
18            MessageBox.Show("文件夹存在!");
19          }
20         else
21          {
22             MessageBox.Show("文件夹不存在!");
23           }
24  }
25
26
27 //删除文件夹
28 void DeleteButton_Click(object sender, RoutedEventArgs e)
29 {
30    using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
31    {
32       file.DeleteDirectory(dir);
33     }
34  }

文件操作:
  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 //读取文件
57 void ReadFilePage_Loaded(object sender, RoutedEventArgs e)
58 {
59    using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
60    {
61     if (file.FileExists(NavigationContext.QueryString["file"].ToString()))
62      {
63        //打开文件
64        using (IsolatedStorageFileStream FileStream = file.OpenFile(NavigationContext.QueryString["file"].ToString(), FileMode.Open, FileAccess.ReadWrite))
65         {
66             StreamReader streamReader = new StreamReader(FileStream);     //实例化streamReader类
67             this.ContentTextBlock.Text = streamReader.ReadLine();  //使用ReadToEnd()方法读取内容
68             streamReader.Close();//关闭文件流
69          }
70       }
71      else
72      {
73       MessageBox.Show(NavigationContext.QueryString["file"].ToString() + "文件不存在");
74       }
75     }
76 }

时间: 2024-08-05 15:19:42

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

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

主要内容: 使用选取器打开和保存文件 关于文件.文件夹和库,如果深究其实还是有比较多的内容,我们这一次来学习一下选取器就收了.还有上篇博文中读写文本文件的三种方式可以细细体会一下. 文件选取器包含文件打开选取器(FileOpenPicker.FolderPicker)和文件保存选取器(FileSavePicker),分别用来打开文件和保存文件,这两个选取器的使用方法大致相同. FileOpenPicker类: ViewMode ,获取或设置文件选取器用来展示文件或文件夹的视图模式,属性值由Pic

Windows App开发之文件与数据

读取文件和目录名 这一节開始我们将陆续看到Windows App是如何操作文件的. 在Windows上读取文件名称.目录名 首先我们在XAML中定义一个Button和TextBlock,将读取文件/目录名的过程写在前者的click事件中.后者则用来显示文件信息. <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <StackPanel Orientation="Ho

Windows Store 开发总结&mdash;&mdash;文件操作

1.读取Isolated Storage 每个Metro程序都有三个文件夹:Local,Roaming,Temp.每个文件夹的访问方法都是相同的. Local用于将数据存储在本地,这是程序特定的文件夹. Roaming存储的文件可能会用于与其他程序进行同步. Temp中的文件,在程序每次启动的时候都有可能被清除. 下面的代码是如何使用它们: public async void IsolatedStorage() { // settings var _Name = \\"MyFileName&qu

【万里征程——Windows App开发】文件选取器

使用文件选取器保存文件 就我个人而言,还是非常喜欢使用文件选取器的,因为能够用自己的代码来调用系统的各种弹框. 在这个示例中,首先在XAML中添加一个Button和一个TextBlock,分别命名为btnSaveFile和tBlockSaveInfo.对于这个保存文件这个操作在后台的Click事件中就可以轻易完成了. private async void btnSaveFile_Click(object sender, RoutedEventArgs e) { FileSavePicker sa

【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)

转载自:http://www.himigame.com/iphone-cocos2dx/1354.html 首先说明一个问题: 为什么要在线更新资源和脚本文件!? 对于此问题,那要说的太多了,简单概括,如果你的项目已经在google play 或Apple Store 等平台上架了,那么当你项目需要做一些活动或者修改前端的一些代码等那么你需要重新提交一个新版本给平台,这时候你的上架时候是个不确定的时候,具体什么时候能上架,主要跟平台有关,你再着急,也没有用的. 那么如果你的项目是使用脚本语言进行

用批处理文件自动备份文件及文件夹,并自动删除n天前的文件

---恢复内容开始--- 下是备份的批处理,添加到"计划任务"中,设定时间自动运行 复制代码 代码如下:@echo off rem 格式化日期 rem date出来的日期是"2006-02-22 星期三",不能直接拿来使用,所以应该先格式化一下 rem 变成我们想要的.date:~0,4的意思是从0开始截取4个字符 set d=%date:~0,4%%date:~5,2%%date:~8,2% rem 设定压缩程序路径,这里用的是WINRAR的rar.exe进行打包

R语言︱文件读入、读出一些方法罗列(批量xlsx文件、数据库、文本txt、文件夹)

笔者寄语:小规模的读取数据的方法较为简单并且多样,但是,批量读取目前看到有以下几种方法:xlsx包.RODBC包.批量转化成csv后读入. R语言中还有一些其他较为普遍的读入,比如代码包,R文件,工作空间等. source  #读取R代码dget    #读取R文件load    #读取工作空间 -------------------------------- SPSS-STATA格式的读入包--foreign 读取其他软件的格式foreigninstall.packages("foreign&

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

问题分析: 出现这种问题的几率很小,除非你是每天都需要使用Outlook的办公人员.出现这种问题我想有如下两种可能.1.注册表中指定的附档临时保存的目录没有写入的相关权限.2.同名附档已存在且权限出现问题,导致无法取代. 问题截图: 该问题官方说明解决步骤: 1.打开注册表找到如下项:HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Security\(注意:注册表中的版本号应该对应客户机的Outlook版本,如:Office 20

Android开发笔记(一百一十)使用http框架上传文件

HTTP上传 与文件下载相比,文件上传的场合不是很多,通常用于上传用户头像.朋友圈发布图片/视频动态等等,而且上传文件需要服务器配合,所以容易被app开发者忽略.就上传的形式来说,app一般采用http上传文件,很少用ftp上传文件. HttpURLConnection上传 很可惜Android没有提供专门的文件上传工具类,所以我们要自己写代码实现上传功能了.其实也不难,一样是按照普通网络访问的POST流程,只是要采用"multipart/form-data"方式来分段传输.另外文件上