SilverLight学习笔记--进一步学习Isolated Storage独立存储二(实践篇)

SilverLight学习笔记--进一步学习Isolated Storage独立存储二(实践篇)

  在"SilverLight学习笔记--进一步学习Isolated Storage独立存储一(理论篇)"中,我们对Isolated Storage独立存储相关概念进行了清理,在本篇,我们一起通过建立一个实例来看看Isolated Storage独立存储常见的相关操作。       
  首先我们在VS2008下新建立一个Silverligth应用程序,程序名命名为:MyIsolateSL.
 
编辑Page.xaml文件,建立程序用户界面,如图

Page.xaml代码如下: 

Code

   程序共分为三个大区,分别是:
      A、文件操作方式(分为:目录操作,文件操作)
      B、键值对操作方式 (分为:字符串键值对,类对象键值对)
      C、修改存储配额
   一、文件操作
    (一)、目录操作
     我们需要在文本输入框内输入目录名才可进行相关的查找、遍历、增加、删除等操作,目录输入框分为:根目录输入框,子目录输入框。
     1、获取根目录下第一级目录列表
     操作方法:直接点击"获取根目录下第一级目录列表"按钮,可以看到,当前根目录下没有任何子目录。
     代码如下:

Code

 2、在根目录下创建第一级目录
     操作方法:在"一级目录名"输入框内输入一级目录名 "R1",然后再点击"获取根目录下第一级目录列表"按钮,然后可以看到根目录下多了一个名为"R1"的子目录。

  我们可以再以此方法建立名为"R2"和"R3"的二个子目录

代码如下:

Code

3、删除指定第一级目录
    操作方法:在"一级目录名"输入框内输入一级目录名 "R3",然后再点击"删除指定第一级目录"按钮,然后可以看到根目录下"R3"子目录不再存在
     删除前

   删除后

代码如下:

Code

     4、判断指定一级目录是否存在
     操作方法:在"一级目录名"输入框内输入一级目录名,然后再点击"判断指定一级目录是否存在"按钮,然后在下面的信息提示栏可以看到判断结果

 代码如下:

Code

 5、获取指定第一级目录下的子目录列表
    操作方法:在"一级目录名"输入框内输入一级目录名"R1",然后再点击"获取指定第一级目录下的子目录列表"按钮,可以看到,在"R1"一级目录下没有任何子目录。
 代码如下:

Code

     6、在指定第一级目录下创建子目录
      操作方法:在"一级目录名"输入框内输入一级目录名"R1",在"子目录名"输入框内输入一子目录名 R1-1,然后再点击"在指定第一级目录下创建子目录"按钮,可以看到,在"R1"一级目录下建立了名为R1-1的子目录。

 同样的方法,建立"R1-2","R1-3"等子目录
 代码如下:

Code

7、删除指定第一级目录下的指定子目录
     操作方法:在"一级目录名"输入框内输入一级目录名"R1",在"子目录名"输入框内输入一子目录名 "R1-3",然后再点击"删除指定第一级目录下的指定子目录"按钮,可以看到。子目录"R1-3"已经被删除

 代码如下:

Code
  8、判断指定子目录是否存在
         操作方法:在"一级目录名"输入框内输入一级目录名"R1",在"子目录名"输入框内输入一子目录名 ,然后再点击"判断指定子目录是否存在"按钮,可以看到判断结果



(二)、文件操作
    我们只涉及在根目录下进行文件的操作,如果要涉及到子目录下文件操作可以参见上面提及的"目录操作"来配合进行。
    1、获取根目录下文件名列表
     操作方法:直接点击"获取根目录下文件名列表"按钮,可以看到当前根目录下没有任何文件。
代码如下:

Code

  2、在根目录创建文件
        操作方法:在"文件名"输入框内输入文件名"F1",在文件内容输入框内输入任何文件内容,然后点击"在根目录创建文件"按钮,可以看到文件创建成功。用同样的方法创建文件F2,F3,F4

代码如下:
 

Code

 3、判断文件是否存在
       操作方法:在"文件名"输入框内输入文件名"F1",然后直接点击"判断文件是否存在"按钮,可以看到判断结果为存在。

代码如下:

Code

 4、删除根目录下指定文件
        操作方法:在"文件名"输入框内输入文件名"F4",然后直接点击"删除根目录下指定文件
"按钮,结果是直接删除指定文件F4

代码如下:

Code

   5、装载选择的文件
      操作方法:直接点击最上面的"文件名列表",点击后将直接把文件名和文件内容显示在下面对应的文本输入框内。

代码如下:

Code

二、键值对操作方式
    我们编写了两套代码,一套是针对“字符串”型键值对,一套是针对"类对象"型键值对。
在程序上的操作完全相同,只是后台代码有所区别。
     1、添加预定义的键值对
为操作类对象键值对,我们需要添加一个类名为Car,代码如下:

Code

  操作方法:直接点击"添加预定义的键值对"按钮,我们在代码内置初始化了一些对应的键值对值,装载后,它们对应的Key和Value将分别显示在对应的ListBox控件内。

   

代码如下:

Code

     2、根据键名查找键值
    操作方法:在"输入鍵名"文本框内输入任何键名,然后选择此键对应的appsetting,或siteSetting选项(见右下角的单选按钮),然后点击"根据键名查找键值"按钮,可以看到定位结果,在下面红色的结果文本栏直接显示查找到的键值,如果没找到将显示相关提示。
 

代码如下:

Code

    3、移除指定的键值对
       操作方法:在"输入鍵名"文本框内输入任何键名,然后选择此键对应的appsetting,或siteSetting选项(见右下角的单选按钮),然后点击"移除指定的键值对"按钮,在下面红色的结果文本栏直接显示删除执行结果。



 代码如下:

Code

 

 

Code

  三、修改存储配额
   Isolated Storage技术就是让你的Silverlight程序可以在用户的硬盘上创建文件,存储数据。管理员能给每个用户单独设定磁盘配额,也就是说,不能保证肯定有足够的空间。因此,我们可以通过编码来动态增加磁盘配额,但是否允许增加还得用户说了算,这种交互是通过跳出一个询问框来进行的。
    点击"修改存储配额"按钮后,将跳出以下对话框:

 代码如下 :

Code

Page.xaml.cs的全部如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.IO.IsolatedStorage; //添加进行IsolatedStorage操作的命名空间

namespace MyIsolateSL
{
    
public partial class Page : UserControl
    
{
        
取得要进行IsolatedStorage相关操作的类对象

        
public Page()
        
{
            InitializeComponent();
            
        }


        
文件操作方式


        
字典操作方式


        
增加独立存储的配额




    }

}


代码总结:

  涉及Isolated Storage独立存储操作的类有:
  
1、IsolatedStorageFile - 操作 独立存储 的类
        IsolatedStorageFile.GetUserStoreForSite() 
- 按站点获取用户的独立存储
        IsolatedStorageFile.GetUserStoreForApplication() 
- 按应用程序获取用户的独立存储
  
2、IsolatedStorageSettings - 在独立存储中保存的 key-value 字典表
        IsolatedStorageSettings.SiteSettings 
- 按站点保存的 key-value 字典表
        IsolatedStorageSettings.ApplicationSettings 
- 按应用程序保存的 key-value 字典表

------------------------------------------------------------------------------------
  涉及的常见操作有:
      目录类:
       DirectoryExists(path) 
- 指定的路径是否存在
       CreateDirectory(path) 
- 创建指定的路径
       GetDirectoryNames() 
- 获取根目录下的目录名数组
       GetDirectoryNames(path) 
- 获取指定目录下的目录名数组
       DeleteDirectory(path) 
- 删除指定的目录(要求目录存在,且目录内无内容)
       
       文件类:
       FileExists(path) 
- 指定的文件是否存在
       CreateFile(path) 
- 创建指定的文件
       GetFileNames()() 
- 获取根目录下的文件名数组
       GetFileNames(path) 
- 获取指定目录下的文件名数组
       OpenFile() 
- 打开指定的文件。 
       DeleteFile(path) 
- 删除指定的文件

       键值操作:
       Add()
-增加键值对
       Remove()
-移除键值对
       appSetting[键名]或siteSetting[键名]
-根据键名取键值
         
       配额操作:
       Quota
-取得当前配额
       AvailableFreeSpace
-当前可用配额
        IncreaseQuotaTo(newQuotaSize) 
- 增加到指定的配额
       其它:
       Clear()
- 将IsolatedStorageFile 存储的项的计数重置为0,并释放集合中所有元素的引用       
       Remove() 
- 关闭 IsolatedStorageFile 对象并移除独立存储内的全部内容
       System.IO.Path.Combine() 
-配合目录操作进行目录合成(与Isolated Storage配合使用)

 

前往:Silverlight学习笔记清单
本文程序在Silverlight2.0和VS2008环境中调试通过。本文参照了部分网络资料,希望能够抛砖引玉,大家共同学习。
(转载本文请注明出处)

posted @ 2009-07-31 11:12  wsdj  阅读(2107)  评论(3编辑  收藏  举报