CFile文件操作类的认识.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
首页???软件开发???VS2010/MFC编程入门之四十五(MFC常用类:CFile文件操作类) ???????上一节中鸡啄米讲了定时器Timer的用法,本节介绍下文件操作类CFile类的使用。 ???????CFile类概述 ???????如果你学过C语言,应该知道文件操作使用的是文件指针,通过文件指针实现对它指向的文件的各种操作。这些文件操作函数中有的最终还是调用了操作系统的API函数或者处理过程与之类似,例如在Windows系统中,fread函数就调用了API函数ReadFile。 ???????Windows系统的API函数除了ReadFile,还有CreateFile、WriteFile等函数。而MFC基于面向对象的思想,将这些Windows API函数封装到了CFile类中,实现对文件的打开、关闭、读、写、获取文件信息等操作。使用CFile类对文件进行操作非常便捷。 ???????CFile类的成员函数 ???????CFile( ); ?????? CFile(HANDLE hFile); ?????? CFile(LPCTSTR lpszFileName,UINT nOpenFlags); ?????? 以上三个成员函数都是CFile的构造函数,用于构造CFile对象。参数hFile为要关联到CFile对象的文件的句柄。参数lpszFileName为要关联到CFile对象的文件的相对路径或者绝对路径;参数nOpenFlags为文件访问选项的组合,通过各选项的按位或运算实现组合,下面的5个表列出了nOpenFlags参数可能取的选项: ?????? 下面的文件访问模式选项表中只能选择一个进行组合,默认取CFile::modeRead。 取值 描述 CFile::modeRead 只读方式访问文件 CFile::modeWrite 写入方式访问文件 CFile::modeReadWrite 读写方式访问文件 ?????? 下面的文件共享模式选项表中也只能选择一个进行组合,默认的共享模式是CFile::shareExclusive。 取值 描述 CFile::shareDenyNone 允许其他进程对文件进行读写 CFile::shareDenyRead 不允许其他进程读取文件 CFile::shareDenyWrite 不允许其他进程写文件 CFile::shareExclusive 禁止其他进程对文件的所有访问 ???????下面的文件创建模式选项列表中可选择第一个或两者都选进行组合。 取值 描述 CFile::modeCreate 如果文件不存在则创建文件,而如果存在则将它关联到此CFile对象并将长度截取为0 CFile::modeNoTruncate 如果文件不存在则创建文件,而如果存在则将它关联到此CFile对象而不进行截取 ?????? 注意,选择CFile::modeNoTruncate时需要与CFile::modeCreate一起使用,即CFile::modeCreate | CFile::modeNoTruncate。 ?????? 另外,还有一个文件缓冲选项列表和一个文件安全选项。文件缓冲选项不太常用,鸡啄米这里就不讲了,有兴趣的可以查阅MSDN。文件安全选项是CFile::modeNoInherit,意为禁止子进程继承使用此文件。 ?????? 当然,在实际使用时,以上各个表并不是都要用到,大家可以根据自己的需要选择用哪个表,选择哪个选项。 ???????virtual BOOL Open(LPCTSTR lpszFileName,UINT nOpenFlags,CFileException* pError = NULL); ?????? 打开文件。它通常与默认构造函数CFile::CFile()一起使用。参数lpszFileName和nOpenFlags同构造函数。参数pError为指向文件异常对象的指针,默认为NULL。 ???????virtual void Close( ); ?????? 关闭文件。如果你没有在执行析构函数前调用此成员函数关闭文件,则析构函数会为你关闭。 ???????virtual UINT Read(void* lpBuf,UINT nCount); ???????读取文件数据到缓存。参数lpBuf是由用户提供的指向接收文件数据的缓存的指针;参数nCount为读取的最大字节数。返回值是实际读取到缓存的字节数,如果到达文件尾则返回值可能会小于nCount,此时继续读取的话,会返回0,所以通常我们都会判断返回值是否小于nCount或者等于0来确定是否到达文件尾。 ???????virtual void Write(const void* lp

文档评论(0)

xuefei111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档