220 likes | 410 Views
文件管理与对象存储. 本节课程主要知识点 文件管理 对象存储 文件系统. 重点和难点. 重点 文件系统的基本概念 难点 对象存储. 文件管理. 文件管理. 文件管理的目的在于用户实现对文件的存储和访问。 Windows CE 由 FileSys.dll 实现存储管理和文件系统。. Filesys.dll 文件. 系统文件 Filesys.dll 实现了 Windows CE 的存储管理和文件系统。 Windows CE 系统启动后, Filesys.dll 同时被加载。. 对象存储. 对象存储.
E N D
文件管理与对象存储 本节课程主要知识点 • 文件管理 • 对象存储 • 文件系统
重点和难点 重点 • 文件系统的基本概念 难点 • 对象存储
文件管理 • 文件管理的目的在于用户实现对文件的存储和访问。 • Windows CE由FileSys.dll 实现存储管理和文件系统。
Filesys.dll文件 • 系统文件Filesys.dll实现了Windows CE的存储管理和文件系统。 • Windows CE系统启动后,Filesys.dll同时被加载。
对象存储 • 对象存储是一个内存堆,由FileSys.dll 管理。 • 由RAM支持,如果RAM带有后备电源,则可以为应用程序提供长久的存储。 • Windows CE中的对象存储与PC机的硬盘相似,为应用程序及数据提供持久存储。
对象存储的组成 • 对象存储包括三部分: • RAM文件系统:与文件系统根“\”相连 • 属性数据库 • 系统注册表 • 以上三部份共享同一个内存堆。 • 注册表总是驻留在对象存储中。
对象存储完成的工作 • 管理堆栈和内存堆。 • 在需要时压缩和解压缩文件。 • 无缝连接基于RAM的数据和基于ROM的应用程序。 • 对象存储为应用程序及其相关数据提供了持久稳定的存储。 • 持久的存储要求非易失性RAM作为物理介质。
存储机制 • 对象存储的机制是基于事务的,与数据库中的事务的概念一样。系统负责数据的完整性。 • 对对象存储的操作要么成功,要么失败返回操作前的状态,系统负责数据的完整性。 • 当向对象存储写入数据时发生电源中断的情况,Windows CE会通过各种手段保证对象存储不被破坏。
文件系统 • 文件系统提供用户对存储设备高效访问的手段。 • 所有文件和文件系统都存在于一个以“\”开始的名字空间下。所有的文件都位于从根目录开始的一棵树中,并以特定的路径唯一标识。 • 支持常见的文件格式。
文件系统的特点 • 用户可根据实际需要来创建自己的文件系统。 • 所有对文件的存取都是使用标准的Win32 API来完成。 • 使用句柄访问文件。 • 外部存储设备可分区。
Windows CE支持的文件系统 • 内部文件系统 • 基于RAM的文件系统 • 基于ROM的文件系统 • 可安装的文件系统 • FAT文件系统 • 其他文件系统
文件系统驱动FSD • 文件系统驱动 FSD (File System Drivers)包含了大量的文件系统驱动程序。
RAM文件系统 • RAM文件系统通常被直接挂载到根目录 下。 • “\”是系统的根目录,除了ROM文件系统和外部文件系统之外所有数据都存储在RAM中。
ROM文件系统 • ROM文件系统通常被挂载到\Windows目录下来访问。 • 外部文件系统以目录的形式存在于根目录下。 • 可选择外部文件系统作为根目录。
FAT文件系统 • FAT文件系统属于外部文件系统。 • FAT文件系统适用于所有外部存储卡,包括ATA卡、线性flash卡以及PC卡。 • 卡可被分区,每个分区可作为一个FAT卷挂载,放置在根目录的一个文件夹下。 • SD卡挂接到根目录下的名称一般为\Storage Card。
Bin FS文件系统 • Binary ROM image file system(BinFS)用于读取由Romimage.exe产生的二进制文件格式。 • .bin文件格式将数据按特定的分段组织。 • NK.bin即是BinFS结构的文件系统。
CD/UDFS文件系统 • Compact Disc File System (CDFS)和Universal Disc File System (UDFS) 用于读取CD,DVD,CD-ROM。 • 使用ATAPI块驱动程序定位和音频视频回放。
访问文件的相关函数 • CreateFile创建或打开文件 • SetFilePointer 设置文件指针 • ReadFile读文件 • WriteFile 写文件 • CloseHandle 关闭文件
文件处理的相关函数 • CopyFile复制文件 • MoveFile 移动文件 • DeleteFile删除文件 • GetTempFileName 创建临时文件 • FindFirstFile 查找文件