WP7 Isolated Storage 删除文件

转载 2012年03月28日 17:25:14

先来传送门:

这个系列很不错http://www.windowsphonegeek.com/tips/all-about-wp7-isolated-storage--intro-to-isolated-storage

当然我们国内也有翻译版 http://www.cnblogs.com/zdave/archive/2011/06/10/2077443.html

有几个注意点

  • 1 程序卸载时,会自动清除对应的独立存储空间。
  • 2 程序在市场更新时,独立存储空间内以前的内容会保留。
  • IsolatedStorageSettings 不是线程安全的,如果同时使用多线程时会报 IsolatedStorageException 异常。
  • 4 独立存储空间意味着是独立的,如果两个程序想要共享一块内容,可以使用web serverce 可以使得任意多的程序共享资源。
  • 5 一个目录被删除时必须为空, 否则会报异常。

              这里我通过递归的方法解决这个问题。

  •         public static void DeleteDirectory(string directoryPath)
            {
                if (DirectoryExists(directoryPath))
                {
                    string[] fileNames = myIsolatedStorage.GetFileNames(directoryPath+"\\*");
                    string[] dirctoryNames = myIsolatedStorage.GetDirectoryNames(directoryPath+"\\*");
    
                    if (fileNames.Length> 0)
                    {
                        foreach (var item in fileNames)
                        {
                            myIsolatedStorage.DeleteFile(System.IO.Path.Combine(directoryPath, item));
                        }
                    }
    
                    if (dirctoryNames.Length > 0)
                    {
                        foreach (var item in dirctoryNames)
                        {
                            DeleteDirectory(System.IO.Path.Combine(directoryPath, item));
                        }
                    }
    
                    myIsolatedStorage.DeleteDirectory(directoryPath);
                }
            }
  • 6     创建文件时    首先检查文件所在的目录是否存在  如果不存在会引发Operation not permitted on IsolatedStorageFileStream 异常。

                                 创建文件完成后需要及时释放流。 否则再次使用时仍然会导致异常。

  •    public static bool CreatFile(string filePath)
      {
                try
                {
                    if (!string.IsNullOrEmpty(filePath) && !FileExists(filePath))
                    {
                        string directoryName = System.IO.Path.GetDirectoryName(filePath);
                        if (!string.IsNullOrEmpty(directoryName) && !DirectoryExists(directoryName))
                        {
                            CreatDirectory(directoryName);
                        }
    
                        myIsolatedStorage.CreateFile(filePath).Close();
        
                   return true;
                    }
                    else
                        return false;
    
                }
                catch (Exception ex)
                {
                    return false;
                }
    
      }
  • 7 注意使用 try{}catch{}来捕获异常
  • 8 使用 using(){  } 可以使 IDisposable 接口的继承对象及时释放资源(即调用了dispose())
  • 9 不要以明文形式在 IsolatedStorageSettings 中存储密码,尝试进行加密。

另外几个个人常用知识点:

1 System.IO.Path.Combine(directoryPath, item) 用来合并路径。

2  System.IO.Path.GetDirectoryName(filePath)   用来分理处路径中的 目录

3 GetFileNames()方法  里面需要在路径后添加上“*”(所有文件名) “?”(匹配的文件名) 否则读取不出文件全集。

 同理 GetDirectoryName() 方法也需要如此处理。

4 不允许对 IsolatedStorageFileStream 执行操作异常 经常是因为该文件所在的路径目录没有创建。


WP7 Isolated Storage 系列 - 1.Isolated Storage 简介

最近,我们收到了很多的关于写一些Isolated storage系列文章的要求。起初我想写一些长的文章,但后来我决定写一些简单的,易于理解的可以解决问题的解决方案,这将是最好的。所以我开始了“WP7 ...
  • zxz414644665
  • zxz414644665
  • 2013年01月28日 14:17
  • 856

WP7 Isolated Storage详解 读取、保存图片文件

首先创建一个Windows Phone 7项目,在项目中添加一个图片例如“logo.jpg”,然后在MainPage.xaml.cs(或其他页面文件)中引入命名空间:using System.IO.I...
  • linewwei
  • linewwei
  • 2011年12月27日 16:31
  • 1200

Isolated Storage

---By Graham Parker , published on 06 Dec 2004 OverviewKnowing how and where to store things i...
  • Jerry1109
  • Jerry1109
  • 2010年08月16日 14:41
  • 228

隔离存贮(Isolated Storage)

隔离存贮(Isolated Storage)提供了一种存储应用程序相关数据的机制,允许你这些数据存储在不同的数据隔离分区(data compartment),存储数据并不局限于任何形式,通常像是组件标...
  • lgq_12345
  • lgq_12345
  • 2008年04月27日 22:30
  • 2778

WP7 Isolated Storage 系列 - 7.读取和存储图像

这是第六篇关于系列短文章“WP7 Isolated Storage系列”,专注于真实实用,并且有源代码的例子,而不是存粹理论。接下来我将要讨论关于如何使用XmlWriter读取和存储数据到Isolat...
  • zxz414644665
  • zxz414644665
  • 2013年02月21日 16:01
  • 329

Isolated Storage 独立存储

Silverligt支持一种类似Cookie的独立存储(Isolated Storage),它是基于客户端文件系统,同时Silverlight提供了一系列操作这个虚拟空间的对象和方法,每个Silver...
  • Eric_K1m
  • Eric_K1m
  • 2013年07月23日 16:00
  • 584

WP7 Isolated Storage 系列 - 4.读取和存储文本文件

这是第四篇关于系列短文章“WP7 Isolated Storage系列”,专注于真实实用,并且有源代码的例子,而不是存粹理论。接下来我将要讨论关于如何从Isolated Storage中读取数据和保存...
  • zxz414644665
  • zxz414644665
  • 2013年01月29日 15:00
  • 1020

Extracting a SQL CE DB from Isolated Storage in WP7 Mango

转自:http://www.codeproject.com/Articles/249208/Extracting-a-SQL-CE-DB-from-Isolated-Storage-in-WP In...
  • ArvinStudy
  • ArvinStudy
  • 2012年02月14日 09:56
  • 669

WP7 Isolated Storage 系列 - 2.创建文件夹和文件

这是第二篇关于系列短文章“WP7 Isolated Storage系列”,专注于真实实用,并且有源代码的例子,而不是存粹理论。接下来我将要讨论关于在Windows Phone 7 Isolated S...
  • zxz414644665
  • zxz414644665
  • 2013年01月28日 15:17
  • 1714

WP7 Isolated Storage 系列 - 3.使用IsolatedStorageSettings存储数据

这是第三篇关于系列短文章“WP7 Isolated Storage系列”,专注于真实实用,并且有源代码的例子,而不是存粹理论。接下来我将要讨论关于在IsolatedStorageSettings中存储...
  • zxz414644665
  • zxz414644665
  • 2013年01月29日 14:19
  • 1212
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WP7 Isolated Storage 删除文件
举报原因:
原因补充:

(最多只允许输入30个字)