Silverlight应用程序 的隔离存储
我们都知道Silverlight的应用程序其实是属于客户端应用。那么它们如果需要在客户端机器存储一些文件,就自然需要一定特殊的机制 。
这两天在讲.NET Framework的时候就讲到了隔离存储机制 ,有些朋友对此不甚理解。其实Silverlight就是一个很典型的应用场景。因为Silverlight程序通常权限是很低的。
首先来看,用户可以通过选项控制是否允许Silverlight程序在本机存储数据
默认情况下,浏览器中的Silverlight可用的空间为1MB,浏览器外的,则为50MB
那么,我们如何申请更多的空间呢?通过下面的代码就可以实现
IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication(); MessageBox.Show(string.Format("还剩下的空间是:{0}",file.AvailableFreeSpace)); try//必须用try的方式,否则直接就失败了 { if (file.IncreaseQuotaTo(6 * 1024 * 1024) == true)//申请6MB的数据空间 { IsolatedStorageFileStream fs = new IsolatedStorageFileStream("test.txt", System.IO.FileMode.Create, file); StreamWriter sw = new StreamWriter(fs); sw.WriteLine("Hello,world"); sw.Close(); MessageBox.Show("写入文件成功"); } else MessageBox.Show("申请空间失败"); } catch(Exception ex){ MessageBox.Show(ex.Message); }
其实,虽然同样使用了隔离存储的技术,但Silverlight做了进一步对限制,大家如果有兴趣可以看看IsolatedStorageFile这个类型,很多方法都没有了。
事实上,Silverlight存储文件的路径也非常怪异,它并不在标准的IsolationStorge目录里面
F:\Users\ChenXizhang\AppData\LocalLow\Microsoft\Silverlight\is\45r33qqq.kk0\rmmfg5ux.wwp\1\s\edch2rv0x2jj1xlcjgzpn4nx0vd4dvcek3se5ezsibfm0gj3qiaaahda\f