设为首页 收藏本站
查看: 614|回复: 0

Windows Phone 7 独立存储Isolated Storage

[复制链接]

尚未签到

发表于 2015-5-9 05:07:43 | 显示全部楼层 |阅读模式
  Windows Phone 7 支持访问数据几种方式为: XML、Isolated Storage[独立存储]、Cloud[云存储],Windows Phone 7 上没有本地
  数据库API可以利用 。
  Isolated Storage[独立存储]有两种方式在本地存储你的数据。第一是通过库中的键/值对,叫做IsolatedStorageSettings。第二是通过创建真实的文件和目录,叫做IsolatedStorageFile。
  (1)IsolatedStorageSettings
    IsolatedStorageSettings允许你在一个字典中存储键/值对(注意,无需任何设定),然后再读取出来。这些数据会一直保存着,无论应用程序停止/启动,或者关机等等。除非你删除它,或者用户卸载你的应用程序,否则它一直存在。要记住的一点是在它被添加到字典中之前你无法读取它。
  IsolatedStorageSettings 可提供一种将用户特定数据存储为本地 IsolatedStorageFile 中的键/值对的便捷方法。一种典型的用途是保存设置,例如,每页显示的图像数、页面布局选项等。
  用户设置可以是特定于某个应用程序的,也可以是在同一个域中的多个应用程序之间共享的。ApplicationSettings 存储为每个应用程序的设置、每台计算机的设置以及每个用户的设置。其范围由应用程序 .xap 文件的完整路径来决定。SiteSettings 存储为每个域的设置、每台计算机的设置以及每个用户的设置。其范围由承载应用程序 .xap 文件的子域来决定。例如,位于 http://www.contoso.com/site1/application.xap 的应用程序将与位于 http://www.contoso.com/site2/application.xap 的应用程序具有不同的 ApplicationSettings。但是,这两个应用程序将共享相同的 SiteSettings,因为它们承载于同一个子域中。
  
       using System.IO.IsolatedStorage;
  
        IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
       //使用 ApplicationSettings 属性可创建用于在独立存储中存储键/值对的字典的新实例。
       //ApplicationSettings 特定于某个用户和某个应用程序。应用程序范围由应用程序的完整路径决定。
  
        private void InitializeSettings()
        {
            if (settings.Contains("emailFlag"))
            {
                EmailFlag.IsChecked = (bool)settings["emailFlag"];
            }
            else settings.Add("emailFlag", false);
        }
  private void EmailFlag_Unchecked(object sender, RoutedEventArgs e)
        {
            settings["emailFlag"] = false;
        }
  private void EmailFlag_Checked(object sender, RoutedEventArgs e)
        {
            settings["emailFlag"] = true;
        }
    }
  (2)IsolatedStorageFile
  IsolatedStorageFile表示包含文件和目录的独立存储区。使用IsolatedStorageFile是一种让你可以在用户的设备中存储真实文件的机制。
  该类使独立存储的虚拟文件系统抽象化。IsolatedStorageFile 对象对应于特定的独立存储范围,在该范围中存在由 IsolatedStorageFileStream 对象表示的文件。应用程序可以使用独立存储将数据保存在文件系统中这些数据自己的独立部分,而不必在文件系统中指定特定的路径。
  虚拟文件系统的根位于物理文件系统上经过模糊处理的每用户文件夹中。由主机提供的每个唯一标识符都映射为不同的根,该根为每个应用程序提供它自己的虚拟文件系统。应用程序不能从它自己的文件系统导航到另一个文件系统中。
  因为独立存储区在特定程序集的范围内,所以其他大多数托管代码都不能访问您的代码的数据(高度受信任的托管代码和管理工具可以从其他程序集访问存储区)。非托管代码可以访问任何独立存储区。
  
例子:
     在一个子目录中创建了一个文本文件,并读取文件中的内容。我们还可以创建和删除目录,子目录及文件。创建一个新的IsolatedStorageFile对象,并使用一个IsolatedStorageFileStream对象将它写入到驱动器中。
  using System.IO.IsolatedStorage;
using System.IO;
  private void SaveButton_Click(object sender, RoutedEventArgs e)
{
    //为程序获取一个虚拟的本地存储
    IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
  //创建一个新的文件夹
    fileStorage.CreateDirectory("textFiles");
  //创建一个txt文件的流
    StreamWriter fileWriter = new StreamWriter(new IsolatedStorageFileStream("textFiles\\newText.txt", FileMode.OpenOrCreate, fileStorage));
    //向文件中写出内容
    fileWriter.WriteLine(writeText.Text);
    //关闭StreamWriter.
    fileWriter.Close();
}
  private void GetButton_Click(object sender, RoutedEventArgs e)
{
    //为程序获取一个虚拟的本地存储
    IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
    //创建一个新的StreamReader
    StreamReader fileReader = null;
  try
    {
        //读取文件
        fileReader = new StreamReader(new IsolatedStorageFileStream("textFiles\\newText.txt", FileMode.Open, fileStorage));
        //读取内容
        string textFile = fileReader.ReadLine();
  
        viewText.Text = textFile;
        fileReader.Close();
    }
    catch
    {
        viewText.Text = "Need to create directory and the file first.";
    }
}
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-65066-1-1.html 上篇帖子: Windows Phone 7 程序菜单栏ApplicationBar 下篇帖子: 多样化实现Windows Phone 7本地数据库访问<2>
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表