- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WinCE文件
WinCE文件系统和文件系统
目的
1.了解Windows CE文件管理的基本原理。
2.掌握Windows CE文件操作基本方法。
WinCE文件系统简介
1. 对象存储
Windows CE 提供了三种类型的文件系统:基于 RAM 的文件系统、基于 ROM 的文件系统、以及用于 支持 ATA(Advanced Technology Attachment)设备和 SRAM 卡等外围存储设备的FAT文件系统。其中, 前两种文件系统属于Windows CE 的内置文件系统,后者属于可安装文件系统。另外,用户也可以编写自己的文件系统并在注册表中注册使用。不过,不论存储设备属于何种类型,所有对文件系统的访问都是通过Win32 API 完成的,实现Windows CE 设备无关的文件访问。
Windows CE 默认使用 RAM 存储设备,被称为对象存储(object store)。对象存储包含三部分:文件系统,数据库以及系统注册表。文件系统,注册表以及数据库不一定要驻留在对象存储里,它可以存放在ROM或是外围存储设备中。这样即使系统掉电后,注册表,文件系统以及数据库的数据也不会丢失。
2. 存储管理器
硬盘,CF 卡等存储设备在Windows CE中属于外围存储设备,对这些外围存储设备以及它们使用的文件系统和块设备驱动程序的管理都是由存储管理器负责的。存储管理器的功能由系统中fsdmgr.dll 模块实现,它包含块设备驱动程序管理器、分区管理器以及文件系统驱动程序管理器。
存储管理器是一个分层结构,一次完整的磁盘 I/O 操作必需经过存储管理器的各个层。首先到达的是过滤器层,它的功能是加密、压缩和病毒扫描等工作。之后到达的是文件系统驱动程序,文件系统驱动程序层对参数进行格式化,将文件名转换为块设备驱动程序可以识别的设备地址。在这之后,就可以经分区管理器或直接交由块设备驱动程序完成最终的 I/O 操作。
3. 文件系统驱动程序
文件系统驱动程序的作用是向用户提供一个按文件名访问的文件系统接口,它建立在块设备驱动程序之上, 完成了对块设备驱动的进一步抽象,把毫无规律的数据块组织成文件,提供文件操作的函数接口。
Windows CE 支持大多数 Windows 桌面平台上使用的文件 I/O 函数,比如 CreateFile、ReadFile、WriteFile、和CloseHandle 等Win32 API。同时,Windows CE 仍然遵循使用句柄对文件进行访问的方法。
分区驱动程序管理管理存储设备的分区,并负责分区的装载和卸载,Windows CE 可以同时支持多个分区驱动程序,但是对一个指定的存储设备来讲只能使用一个分区驱动程序,由它解释设备上的所有分区。
块设备驱动主要是提供对存储设备的分块操作, 块的大小一般是固定的, 常用的是 512 字节、 1KB 字节、 2KB 字节和 4KB 字节。块设备驱动程序向上层输出一个流接口,应用程序通过 CreateFile 和 ReadFile这些标准的文件系统 API 对块设备进行访问。
课题内容
实现一个简单的班级名单浏览器。
说明与提示
(一)班级名单浏览器
1. 创建工程 :
使用 EVC 创建FileOperation 工程,界面如下图所示:
2. 文本编辑框和组合框显示一条学生记录的各个字段;
3. 按钮实现名单浏览,以及编辑、修改记录的功能;
4. 关键数据结构和相关代码:
1) 使用定长记录存放学生的信息,同时,记录各字段长度也固定:
typedef struct _CStudentData
{
TCHAR stuID[7]; // studentID
TCHAR name[21]; // name
TCHAR gender[7]; // sex
TCHAR birth[11]; // birthdate
TCHAR classNo[21]; // class
} CStudentData;
2)使用文件存放学生名单:
文件名:
const LPCTSTR STUFILEPATH = _T(\\My Documents\\student.dat);
读文件中的记录:
CFile stuFile;
CStudentData studentData;
DWORD dwRead;
ZeroMemory( studentData,sizeof(studentData) );
if ( stuFile.Open( STUDENTFILEPATH, CFile::modeRead) ) // 打开文件成功
{
dwRead = stuFile.Read( studentData, size
文档评论(0)