- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 Windows 文件操作
第8章 Windows 文件操作 8.1 文件操作 8.2 驱动器和目录 8.3 使用注册表 8.1 文件操作 Windows提供了一类API函数来读、写和管理磁盘文件 MFC将这些函数转化为一个面向对象的类——CFile,它允许将文件视为可以由CFile成员函数操作的对象,如Read和Write等 . 8.1 文件操作 8.1.1 创建和读写文件 8.1.2 获取文件信息 8.1.3 常用文件操作 8.1.5 MFC的支持(CFile类) 8.1.1 创建和读写文件 使用API函数读写文件时,首先要使用CreateFile函数创建文件对象(即打开文件),调用成功会返回文件句柄;然后以此句柄为参数调用ReadFile和WriteFile函数,进行实际的读写操作;最后调用CloseHandle函数关闭不再使用的文件对象句柄。 1.打开和关闭文件 CreateFile:创建或打开文件、目录、物理磁盘、控制台缓冲区、邮槽和管道等 HANDLE CreateFile ( LPCTSTR lpFileName,?? ??????????????????????// 要创建或打开的对象的名称 DWORD dwDesiredAccess, ??????????????????????????????? // 文件的存取方式 DWORD dwShareMode, ?????????????????????????????????????????????? // 共享属性 LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 安全属性 DWORD dwCreationDisposition, ??? // 文件存在或不存在时系统采 取的行动 DWORD dwFlagsAndAttributes,?????????????????????????????????? // 新文件的属性 HANDLE hTemplateFile ????????????????????????????? // 一个文件模板的句柄 ); 2.移动文件指针 系统为每个打开的文件维护一个文件指针,指定对文件的下一个读写操作从什么位置开始。随着数据的读出或写入,文件指针也随之移动 。 DWORD SetFilePointer ( ?????????????? HANDLE hFile, ???????????????????????? // 文件句柄 ?????????????? LONG lDistanceToMove, ???????? // 要移动的距离 ?????????????? PLONG lpDistanceToMoveHigh, ?????? // 移动距离 的高32位,一般设置为NULL ?????????????? DWORD dwMoveMethod ???????? // 移动的模式 ?????????????????? ); 3.读写文件 读写文件的函数是ReadFile和WriteFile,这两个函数既可以同步读写文件,又可以异步读写文件。而函数ReadFileEx和WriteFileEx只能异步读写文件。 BOOL ReadFile( ???? HANDLE hFile,?????????????????????????????????????? // 文件句柄 ???? LPVOID lpBuffer,?????? ??????????????????????????????? // 指向一个缓冲区,函数 //会将读出的数据返回到这里 ???? DWORD nNumberOfBytesToRead, ???? // 要求读入的字节数 ???? LPDWORD lpNumberOfBytesRead, ?? // 指向一个DWORD类型的变量, ??????????????????????????????????????????????????????????? // 用于返回实际读入的字节数 ???? LPOVERLAPPED lpOverlapped ?????????????????? // 以便设
文档评论(0)