Windows Phone文件/SD卡操作 (1)

1.1 概述
Windows Phone提供了XML、Isolated Storage、WebServices、 Cloud等数据访问方式,这一章我们来介绍Isolated Storage。另外我们我们将结合应用程序的生命周期介绍IsolatedStorageSettings,最后我们来说明一下Windows Phone对SDCARD的处理方式以及关于Isolated Storage的一个常见误解
1.2 IsolatedStorage
Windows Phone 7都有自己的永久存储空间,叫做isolated storage,程序可以用过System.IO.IsolatedStorage名称空间中提供的类来访问。Isolated storage中的文件可以读写。本节,我们通过一个删除目录的方法来学习IsoatedStorage是的使用方法。

首先,创建一个Silverlight应用程序,在MainPage构造函数加入如下代码
  1. InitializeComponent();

  2. IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication();
  3. try
  4. {
  5. if (!isf.DirectoryExists("Directory1"))
  6. isf.CreateDirectory("Directory1");

  7. if (!isf.FileExists("Directory1/File1"))
  8. {
  9. IsolatedStorageFileStream isoStream1 = new IsolatedStorageFileStream("Directory1/File1", System.IO.FileMode.Create, isf);
  10. isoStream1.Dispose();
  11. }

  12. if (isf.FileExists("Directory1/File1"))
  13. Debug.WriteLine("Directory1/File1 created!");

  14. isf.DeleteDirectory("Directory1");
  15. }
  16. catch (IsolatedStorageException e)
  17. {
  18. Debug.WriteLine(e.ToString());
  19. }
复制代码
从Visual Studio Ouput窗口我们可以看到Directory1目录生成了,但是调用DeleteDirectory(“Directory1”)失败了,抛出了异常
An error occurred while accessing IsolatedStorage.

发生这个异常的原因是,如果文件夹不是空的,不能调用IsolatedStorageFile的DeleteDirectory直接删除。

我们来修改一下程序,定义一个DeleteDirectory成员函数,代码如下
  1. public static void DeleteDirectory(IsolatedStorageFile store, String root)
  2. {
  3. String dir = root;

  4. // delete file in current dir
  5. foreach (String file in store.GetFileNames(dir + "/*"))
  6. {
  7. store.DeleteFile(dir + "/" + file);
  8. }

  9. // delete sub-dir
  10. foreach (String subdir in store.GetDirectoryNames(dir + "/*"))
  11. {
  12. DeleteDirectory(store, dir + "/" + subdir + "/");
  13. }

  14. // delete current dir
  15. store.DeleteDirectory(dir);
  16. }
复制代码
MainPage()函数代码如下
  1. InitializeComponent();

  2. IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication();
  3. try
  4. {
  5. if (!isf.DirectoryExists("Directory1"))
  6. isf.CreateDirectory("Directory1");

  7. if (!isf.FileExists("Directory1/File1"))
  8. {
  9. IsolatedStorageFileStream isoStream1 = new IsolatedStorageFileStream("Directory1/File1", System.IO.FileMode.Create, isf);
  10. isoStream1.Dispose();
  11. }

  12. if (isf.FileExists("Directory1/File1"))
  13. Debug.WriteLine("Directory1/File1 created!");


  14. DeleteDirectory(isf, "Directory1");

  15. if (!isf.FileExists("Directory1/File1"))
  16. Debug.WriteLine("Directory1/File1 removed!");
  17. }
  18. catch (IsolatedStorageException e)
  19. {
  20. Debug.WriteLine(e.ToString());
  21. }

  22. isf.Dispose();
  23. }
复制代码
从Debug output窗口可以看到,File1创建成功了,而且File1也被成功删除了。
我们可以在调用DeleteDirectory这行设置一个断点,然后利用Windows Phone Device Manager来看看文件系统中是否已经存在了Directory1目录和File1文件,顺便了解一下所谓的IsolatedStorage目录在哪里。如果你是第一次听到Windows Phone Device Manager的话,

PIC sd卡1.jpg
2012-3-2 10:33:38 上传
下载附件 (21.8 KB)


如上图所示,在手机的\Application\Data\017174D3-EFTB-42DA-D810-58ET570E3649\Data\IsolatedStore下可以看到Directory1目录,Directory1目录下有一个File1文件。
我们打开Visual Studio按F5继续执行,再观察Windows Phone Device Manager,可以看到文件夹Directory1和它下面的文件File1确实被删除了。

PIC sd卡2.jpg
2012-3-2 10:33:38 上传
下载附件 (22.32 KB)


希望大家能借助这么一个简单的例子了解一下IsolatedStorage实现原理
我们这里再简单说一下自定义的DeleteDirectory成员函数的原理:
如果一个目录下的文件不是子目录,那么就直接删除掉,如果是子目录递归调用DeleteDirectory删除子目录。如果任何一级目录为空则调用IsolatedStorageFile的DeleteDirectory成员函数删除目录。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RescuePRO 采用创新的媒体修复算法,可恢复图像、文档、邮件、视频、音乐或任何格式的数据,提供显示可修复数据的预览。它为 MPEG 音频及 MPEG 视频 (MPEG-1/2/3) 修复采用全球唯一的修复演算法。您看到和听到的就是您将要修复的。 RescuePRO 可用于大多数 USB、FireWire 或 Flash Path 适配器,可修复 Palm Pilot、Windows CE 设备、数码相机、数码摄像机和 MP3 播放机上的数据。无论文件已被删除、媒体已被破坏或格式化,RescuePRO 都可提供帮助。向导式的界面让您只需轻按鼠标即可修复文件。 其它功能:RescuePRO 提供的安全擦除功能可永久性删除您数字媒体上的数据。RescuePRO 还提供有镜像实用程序,让您建立媒体的镜像,以便在将来用于修复。 RescuePRO 适用于任何 USB、FireWire 或 FlashPath 适配器,可以恢复 Palm Pilots、Windows CE 设备、数码相机与摄像机、MP3 播放器、数码录音机和其它设备中的数据。无论是文件被删除,还是介质被损坏或格式化,RescuePRO 都能提供帮助。通过向导启动的界面,可以很容易地通过三次鼠标单击恢复您的文件。 特点: ·修复图像、文档、电子邮件、视频、音乐或其它几乎所有文件 ·RescuePRO 采用创新的媒体修复算法,显示可修复数据的预览, 包括 MPEG 音频及视频 ·简单易用的图形化用户界面让您只需轻按鼠标即可修复您的文件 ·包含的安全媒体擦除功能可永久性删除您数字媒体上的数据 ·镜像实用程序允许您建立媒体的镜像,以便在将来用于修复 支持的数字媒体: SD/SDHC、CompactFlash、SmartMedia、MMC、Memory Stick、xD 卡、Microdrive、PCMCIA、视讯 CD 及 DVD。RescuePRO 不是设计用于从硬盘上修复数据 支持的闪存卡/移动设备: CompactFlash (所有) Memory Stick Memory Stick Pro Memory Stick Pro Duo Micro drive microSD microSDHC miniSD MultiMedia SD SDHC SmartMedia xD 大部分移动数码介质 支持的RAW图像格式: 3FR - Hasselblad RAW CR2 - Canon RAW (第二版) CRW - Canon RAW DCR - Kodak RAW DNG - Adobe Digital Negative RAW ERF - Epson RAW HDR - Leaf RAW IIQ - PhaseOne RAW MEF - Mamiya Raw MRW - Minolta RAW NEF - Nikon RAW ORF - Olympus RAW PEF - Pentax RAW RAF - Fuji RAW RAW - Panasonic RAW SRF/ARW - Sony RAW x3F - Sigma RAW 支持的视频/多媒体格式: 3GPP Video - Mobile phone video format 3GPP2 Video - Mobile phone video format ACVHD video AVI - Microsoft Video for Windows movie MP3 - MPEG Audio Layer 3 (AC3) MP4– MPEG Advanced Audio Coding MID, RMI - MIDI music sequence MOV - QuickTime for Windows movie MPG, MPEG- Video+Audio RM - RealAudio video file WAV - Microsoft Windows Wave Sound 支持的操作系统: Windows 7 Windows Vista Windows Server 2003 Windows xP Windows 2000 Mac OS x 10.3+ 支持的容量: 不超过128GB
1Password 允许您从受支持的浏览器中快速保存新的登录名。 它会检测您何时登录网站,并且如果发现尚未保存的密码,则 1Password 会提示您将新的登录名保存在安全的加密数据文件中,以备后用。 1Password 会记住您的所有密码,因此您不必记住它,它还有一个名为 Strong Password Generator 的工具,可用于创建真正强大的,不可猜测的密码,以确保您安全上网。 电子钱包金库提供了一个安全的地方来存储敏感信息,例如信用卡,银行帐户,会员资格和奖励计划。 1易于在自己的“保险库”中找到密码项,例如登录名,安全注释,身份和软件许可证。 1Password 有许多可用的解决方案,可让您在需要的任何地方访问数据。 您的密码管家 1Password 中文版您的密码管家 1Password 中文版 忘记密码了。 1Password 会为您记住所有这些内容。单击保存您的密码并登录到站点。就这么简单。 您需要记住的 1Password… 使用 1Password,您只需要记住一个密码。您所有的其他密码和重要信息都受您的主密码保护,只有您自己知道。 使用所有这些密码,您如何在线生存? 没有密码管理器,很难保持安全和有条理。 1Password 为您记住一切 不要忘记您的密码。或您的银行帐户路由号码。或您房屋的警报代码。 1Password 安全地跟踪所有记录。存储从在线帐户到社会保险号的所有内容。使用标签和强大的搜索功能,可以在任何设备上快速找到所需内容。 保守秘密 您的数据受您唯一的一个主密码保护。强大的 AES-256 加密可随时保护您的敏感信息。使用指纹或 PIN 码在移动设备上解锁 1Password。 节省上网时间… 1Password 已集成到您的 Web 浏览器中,因此您可以单击创建密码,填写信用卡并登录在线帐户。 …以及您喜欢的应用中 只需单击一下即可登录 iPhone 或 iPad 上受支持的应用程序,而无需输入用户名或密码。查看数百个喜欢 1Password 的应用程序,包括 Safari,Slack,The Guardian,Tumblr,Kickstarter,Twitter,eBay 等! 旅行时保护您的数据 无论您在何处漫游,1Password 都能为您提供支持。登录您的 1Password 帐户并启用“旅行模式”以从所有设备中完全删除您的敏感数据。 屡获殊荣的 1Password 简便,安全。 它会为您的所有帐户创建强而独特的密码,以便您单击即可登录。 您可以自动填写长表格和购物车,然后通过存储诸如社会保险号,奖励计划,应用密码,甚至是您不想留下的纯文本笔记之类的东西来节省钱包空间。 1Password 直接与流行的浏览器集成,以适合您的工作流程。 您可以继续使用自己喜欢的浏览器,也可以随时切换浏览器,并随身携带所有密码,身份和信用卡。 1Password 使您的数据与 iPhone,iPad,Android 和 Windows 的版本保持同步,并且借助新的Multiple Vaults功能,您可以与其他用户进行协作。 您执行的所有操作均使用您需要记住的一个密码进行保护和加密。 1Password 是您在线和离线生活中的首要密码和身份管理器。
2.ASP.NET.2.0.高级编程(第4版) [1/7] 原书名: Professional ASP.NET 2.0 原出版社: Wrox 作者:(美)Bill Evjen, Scott Hanselman, Farhan Muhammad [同作者作品] [作译者介绍] 译者: 李敏波[同译者作品] 出版社:清华大学出版社 ISBN:7302139067 上架时间:2006-11-16 出版日期:2006 年11月 开本:185×260 页码:1090 版次:4-1 内容简介回到顶部↑本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP.NET初级程序员以及准备迁移到ASP.NET 2.0的编程老手。该书与《ASP.NET 2.0入门经典(第4版)》及其早期版本,曾影响到无数中国Web程序员。. ASP.NET允许Web站点为每个访问者显示独一无二的页面,而不是显示相同的静态HTML页面。ASP.NET 2.0的发布,使Web应用程序的开发又前进了一大步。这个新版本增加了大量的新功能,减少了编写常见应用程序所需的代码量。 ASP.NET 2.0新增了50多个新服务器控件,类的数量也翻了一倍,其他许多方面也有很大的变化。本书介绍了ASP.NET 2.0中的每个新增特性和功能,以便读者把这些新技术应用于实践。.. 本书主要内容 ● 服务器控件的概念及其在ASP.NET开发中的主导作用 ● 使用新的Master页面特性创建模板化的ASP.NET页面 ● 调试和处理错误的技术 ● 提取、创建、处理和存储XML的各种框架 ● 打包和部署ASP.NET应用程序的方法 ● 快速、逻辑地检索、更新和删除数据 本书读者对象 本书适合于有一些ASP.NET基础知识的学习者以及准备迁移到ASP.NET 2.0的有经验的程序员和开发人员。 目录回到顶部↑ 第1章 ASP.NET 2.0概述 1 1.1 简史 1 1.2 ASP.NET 2.0的目标 2 1.2.1 开发人员的效率 3 1.2.2 管理 5 1.2.3 性能和可伸缩性 8 1.3 ASP.NET 2.0的其他新特性 8 1.3.1 新的开发人员体系结构 8 1.3.2 新的编译系统 12 1.3.3 页面框架的新增内容 13 1.3.4 访问数据的新对象 15 1.3.5 新的服务器控件 15 1.4 建立ASP.NET 2.0页面的新IDE 16 1.5 小结 17 第2章 Visual Studio 2005 19 2.1 启动页面 19 2.2 文档窗口 20 2.2.1 文档窗口中的视图 20 2.2.2 标记导航器 21 .2.2.3 页面标签 22 2.2.4 代码改变状态的通知 23 2.2.5 错误通知和辅助 23 2.3 工具箱 25 2.4 Solution Explorer 26 2.5 Server Explorer 28 2.6 Properties窗口 28 2.7 丢失的窗口 29 2.8 其他常见的Visual Studio操作 29 2.8.1 创建新项目 29 2.8.2 引用其他对象 30 2.8.3 使用智能标记 32 2.8.4 保存和导入Visual Studio设置 32 2.8.5 验证HTML 34 2.8.6 团队的合作 36 2.8.7 使用代码片断 36 2.9 小结 38 第3章 应用程序和页面框架 39 3.1 应用程序的位置选项 39 3.1.1 内置的Web服务器 39 3.1.2 IIS 40 3.1.3 FTP 41 3.1.4 Web站点需要FrontPage Extensions 42 3.2 ASP.NET页面结构选项 43 3.2.1 内置编码 44 3.2.2 新的后台编码模型 46 3.3 ASP.NET 2.0的Page指令 48 3.3.1 @Page 49 3.3.2 @Master 51 3.3.3 @Control 52 3.3.4 @Import 53 3.3.5 @Implements 54 3.3.6 @Register 55 3.3.7 @Assembly 55 3.3.8 @PreviousPageType 56 3.3.9 @MasterType 56 3.3.10 @OutputCache 56 3.3.11 @Reference 57 3.4 ASP.NET页面的事件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值