微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight应用程序 的隔离存储

我们都知道Silverlight的应用程序其实是属于客户端应用。那么它们如果需要在客户端机器存储一些文件,就自然需要一定特殊的机制 。

这两天在讲.NET Framework的时候就讲到了隔离存储机制 ,有些朋友对此不甚理解。其实Silverlight就是一个很典型的应用场景。因为Silverlight程序通常权限是很低的。

首先来看,用户可以通过选项控制是否允许Silverlight程序在本机存储数据

image

认情况下,浏览器中的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);
            }

image

 

其实,虽然同样使用了隔离存储的技术,但Silverlight做了进一步对限制,大家如果有兴趣可以看看IsolatedStorageFile这个类型,很多方法都没有了。

事实上,Silverlight存储文件的路径也非常怪异,它并不在标准的IsolationStorge目录里面

F:/Users/ChenXizhang/AppData/LocalLow/Microsoft/Silverlight/is/45r33qqq.kk0/rmmfg5ux.wwp/1/s/edch2rv0x2jj1xlcjgzpn4nx0vd4dvcek3se5ezsibfm0gj3qiaaahda/f

image

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐