欢迎来到天天文库
浏览记录
ID:36700033
大小:345.60 KB
页数:51页
时间:2019-05-10
《《windows程序设计》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Windows程序设计基础第六章文件操作和内存映射文件操作文件是每个应用程序都要做的事情。保存和获取信息方式:磁盘文件和注册表6.1文件操作文件的输入输出是操作系统的重要部分。CFile类:读写和管理磁盘文件的类API函数:与底层设备(COM口、设备驱动)交互创建和读写文件使用API函数读写文件时,首先使用CreateFile函数创建文件对象(打开文件),调用成功返回文件句柄;然后以此句柄调用ReadFile和WriteFile函数,进行实际的读写操作。最后调用CloseHandle函数关闭不再使用的文
2、件对象句柄。打开和关闭文件HANDLECreateFile(LPCTSTRlpFileName,//要创建或打开对象的名称DWORDdwDesAccess,//文件存取方式DWORDdwShareMode,//共享属性LPSECURITY_ATTRIBUTESlpSecurityAttributes,//安全DWORDdwCreationDisposition,//文件存在或不存在时操作系统采取行动DWORDdwFlagsAndAttributes,//新文件的属性HANDLEhTemplateFile
3、);//一个文件模板的句柄lpFileName:是以空值结尾的字符串的指针,包含要创建、打开或截取的文件、管道、通信资源、磁盘设备或控制台的名称。dwDesAccess:指定文件的输出类型,具体见表所示。值意义0允许应用程序查询设备属性,而实际上不访问设备GENERIC_READ指定读取属性,可以从文件中读取数据,可以移动文件指针GENERIC_WRITE指定写入属性,可以向文件中写入数据,可以移动文件指针dwShareMode:确定是否且如何共享这个文件,可以采用下表所示的值。值意义0禁止文件共享FI
4、LE_SHARED_DELETE仅用于Windows2000中,后续对象打开操作仅限于删除操作FILE_SHARED_READ可以对文件执行其他的打开操作,以进行读取FILE_SHARED_WRITE可以对文件执行其他的打开操作,以进行写入lpSecurityAttributes:是指向SECURITY_ATTRIBUTES结构的指针,指定了目录的安全属性,但要求文件系统支持如NTFS的格式。Windows98不支持此属性,在函数调用时应设置为NULL。dwCreationDisposition:确定文
5、件存在或不存在时所采取的动作。这个参数必须为下表所示的值之一。值意义CREATE_NEW创建新文件。如文件已存在,函数调用失败CREATE_ALWAYS创建新文件。如文件已存在,覆盖旧文件OPEN_EXISTING打开文件。如文件已存在,函数调用失败OPEN_ALWAYS打开文件。如文件已存在,函数创建一个文件,其dwCreationDisposition属性是CREATE_NEWTRUNCATE_EXISTING打开文件。一旦打开,就截断文件,使其大小为零。调用过程必须至少用GENERIC_WRITE
6、权限打开。如果文件已存在,函数调用失败dwFlagsAndAttributes:指定文件的属性和标志。该参数的属性值较多,除属性FILE_ATTRIBUTE_NORMAL外,都可以任意组合。表中列出了较常用的几个,属性含义FILE_ATTRIBUTE_ARCHIVE文件是存档类型,可用于备份或删除FILE_ATTRIBUTE_ENCRYPTED文件或目录是加密的。如果指定属性有FILE_ATTRIBUTE_SYSTEM,那么此标志没有作用FILE_ATTRIBUTE_HIDDEN文件是隐藏的FILE_A
7、TTRIBUTE_NORMAL文件没有属性,此标志只有在单独使用时才有效FILE_ATTRIBUTE_READONLY文件是只读属性FILE_ATTRIBUTE_SYSTEM文件为系统文件hTemplateFile:用于存取模板文件的句柄。模板文件为正在创建的文件提供扩展属性。返回值如果函数调用成功则返回打开文件的句柄。如果调用前文件已经存在,且dwCreationDisposition参数使用CREATE_ALWAYS或OPEN_ALWAYS,则返回ERROR_ALREADY_EXISTS。函数调用失
8、败则返回INVALID_HANDLE_VALUE。读取、写入、移动和删除文件在第一次打开文件时,Windows在文件的开头存放一个文件指针,文件指针所指的位置就是下一次读取或写入的地方。随着字节的读取或写入,Windows也相应增加文件指针。应用程序可以利用函数SetFilePointer来移动文件指针的位置。执行读取和写入的函数是ReadFile和WriteFile。这两个函数在文件指针位置处读取和写入指定数量的字节数,并不进行格式化数据
此文档下载收益归作者所有