欢迎来到天天文库
浏览记录
ID:40239549
大小:517.50 KB
页数:37页
时间:2019-07-28
《Visual C++ 6.0实例教程 第6章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章文件操作内容摘要:1.使用CFile类进行文件读写、删除、改名及访问文件属性2.使用CStdioFile类操作文本文件3.使用CFileFind类查找文件4.了解windowsAPI的文件操作返回目录6.1文件操作类CFile学习目标使用CFile类进行文件读写、删除、改名及访问文件属性.6.1返回第6章(1)文件打开函数OpenBOOLOpen(LPCTSTRlpszFileName,UINTnOpenFlags,CFileException*pError=NULL);参数lpszFileName:为欲打开的文件名,文件名
2、可以包含路径和文件名两部分。如“d:\bak\test.txt”,如果此字符串不包含文件路径,如“test.bak”,则系统默认为当前路径,即生成的可执行文件所在目录。参数nOpenFlags:用于设置访问模式,指定当打开文件时进行的动作,可以将以下所列模式用按位或“
3、”操作符连接起来。至少应有一个访问模式,modeCreate是可选的。以下是常用参数列表:CFile::modeCreate:调用构造函数构造一个新文件。CFile::modeRead:打开文件仅供读。CFile::modeReadWrite:打开文件供读/写。
4、CFile::modeWrite:打开文件仅供写。CFile::typeText:设置文本文件模式(只能用在子类中)。CFile::typeBinary:设置二进制文件模式(只能用在子类中)。参数pError:是一个异常类的指针,可通过该类和函数的返回值来确定函数是否调用成功,如下表所示。6.11.文件的打开与关闭注意:参数pError为CFileException类型。而CFileException是异常类的一种,用于检测文件操作中可能出现的错误。关于异常类,将在第八章进行详细的介绍。例如:CFilef;if(!f.Open(“
5、D:\bak\test.txt”,CFile::modeCreate
6、CFile::modeWrite))returnfalse;6.11.文件的打开与关闭Perror返回值调用是否成功异常类的设置NULLTrueYNULLFalseNCFileExceptionTrueY没有变化CFileExceptionFalseN置入错误信息(2)用于打开文件的构造函数CFile(LPCTSTRlpszFileName,UINTnOpenFlags)throw(CFileException);如:CFilef(“D:\bak\tes
7、t.txt”,Cfile::modeRead);注意:构造函数没有返回值,当打开文件出错时只是产生一个异常。所以不能象函数那样通过分支语句来保证文件已打开,而应使用TRY/CATCH宏来判断。例:CStringstrFileName=“D:\bak\test.txt”;TRY{CFilef(strFileName,CFile::modeCreate
8、CFile::modeWrite);}CATCH(CfileExceptione){#ifdef_DEBUGafxDump<<″文件不能打开!″<m_cause<<″″
9、;#endif}END_CATCH6.11.文件的打开与关闭(3)成员函数Close定义:voidClose();Close函数用于关闭由Open函数打开的文件。使用Open函数打开文件后,应使用Close函数释放文件句柄及缓冲区的资源。打开文件和关闭文件的例子。CFilef;if(!f.Open(“D:\baktest.txt”,CFile::modeRead)){MessageBox(“打开文件失败!”);return;}f.Close();6.11.文件的打开与关闭(1)读写函数virtualUINTRead(void*
10、lpBuf,UINTnCount);throw(CFileException);Read函数返回值是传输到缓冲区的字节数。参数lpBuf:指向用户提供的缓冲区以接收从文件中读取的数据。参数nCount:为可以从文件中读出字节数的最大值。注意:对所有CFile类,如果到达文件尾,则返回值可能比nCount小。virtualvoidWrite(constvoid*lpBuf,UINTnCount);throw(CFileException);Write函数的参数与Read函数的参数类似。参数lpBuf:指向用户提供的缓冲区,包含将写入
11、文件中的数据。参数nCount:从缓冲区内传输的字节数。Write在几种情况下均产生异常,包括磁盘满的情况、磁盘为写保护状态等。注意:CFile类并没有提供类似EOF之类的文件结束标志,所以文件的结束是根据Read函数的返回值来判断的。Read函数
此文档下载收益归作者所有