Silverlight开发应用对于一个经验丰富的开发人员来说是一个非常有用的工具。他们可以通过这款工具带来的功能,轻松的解决基于多媒体相关的功能需求。下面我们就先来了解一下有关Silverlight独立文件存储相关概念。#t#
一、什么是Silverlight独立文件存储呢?
Silverlight 代码本身是不能去操作系统的,说白了就是他不能对你的系统的文件去做一些CRUD(在你的系统中创建文件,删除文件,ect);如果允许做这样的操作,那么也要启用IE的安全模式;但是在Silverlight 应用程序中又须要用到数据的存储这个功能,SL会调用到Isolated Storage(独立存储)。这种存储方式将提供一个磁盘存储空间,他是一种虚拟的文件系统,能存储小量的数据;在默认的情况下,它只能存储1MB的文件;用户可能根据自己的要求可以对空间的大小进行合理的分配;
二、Silverlight独立文件存储的操作;
我们可以用到Syste.IO这个命名空间下的IsolateStorageFiel类,我们将得到一个IslatedStorageFile对象的当前应用程序用IsolatedStorageFile.GetUserStoreForApplicttion,如下所示:
- IsolatedStorageFile store =
IsolatedStorageFile.GetUser
StoreForApplication();- IsolatedStorageFile
Silverlight独立文件存储常用的方法如下:
方法名 备注
CreateDirectory() 创建一个新的独立存储文件夹
DeleteDirectory() 删除独立存储文件夹
CreateFile() 创建文件
DeleteFile() 删除文件
Remove() 移出所有的文件和文件夹
GetFileNames() 得到文件名称集合
GetDirectoryNames() 得到文件夹名称集合
OpenFile() 打开文件
Silverlight独立文件存储的读写操作与我们操作用到的文件数据的操作基本是一样,StreamWrite,StreamRead这两个方法;
在这里创建一个名为“cao.txt”的文件,并写入当前的时间;他的文件写如代码如下:
- //文?件t的?写′入?
- try
- {
- using (IsolatedStorageFile store =
- IsolatedStorageFile.GetUserStore
ForApplication())- {
- using (IsolatedStorageFileStream
stream = store.CreateFile("cao.txt"))- {
- StreamWriter writer = new
StreamWriter(stream);- writer.Write(DateTime.Now);
- writer.Close();
- }
- MessageBox.Show("文?件t写′入?成é功|");
- }
- }
- catch (Exception err)
- {
- MessageBox.Show(err.Message.ToString());
- }
现在文件的信息写入进去,我们应该怎么读出呢?代码如下:
- try
- {
- using (IsolatedStorageFile store =
- IsolatedStorageFile.GetUserStoreFor
Application())- {
- using (IsolatedStorageFileStream stream
= store.OpenFile("date.txt",- FileMode.Open))
- {
- StreamReader reader = new Stream
Reader(stream);- lblData.Text = reader.ReadLine();
- reader.Close();
- }
- }
- }
- catch (Exception err)
- {
- MessageBox.Show(err.Message.ToString());
- }
通过对文件的读取时我们对它调试不难找到他的存储位置,C:\Users\matthew\AppData\LocalLow\Microsoft\Silverlight\is\sid3dsxe.u1y\lstesiyg.ezx
\s\atkj2fb5vjnabwjsx2nfj3htrsq1ku1h\f\cao.txt,不能的操作系统他所放的文件位置是不一样的,可能通过调试来找到;
三、自己的理解
Silverlight独立文件存储的读写操作都可以了,这时我们可以联想到ASP。NET中的相同的文件了,在ASP。NET中也有一个COOKIE,它也是写在我们的客户端的,可能保存一些用户的信息,在这里我就不对ASP。NET中的COOKIE作过多的解释了;说得更让人理解一点,Silverlight 中的独立文件的存储与COOKIE有一点相同,但是目前我也只对它有这么多的研究,它也可以来解决在项目中保存用户的登陆信息的,这里也有一个安全性的问题,大家可以根据自己的要求去解决;