第6章文件操作 内容摘要: 1.使用 CFile类进行文件读写、删除、改名及 访问文件属性 2.使用 CStdiofile类操作文本文件 3使用 CFilefind类查找文件 4了解 windOws api的文件操作
第6章 文件操作 内容摘要: 1. 使用CFile类进行文件读写、删除、改名及 访问文件属性 2. 使用CStdioFile类操作文本文件 3. 使用CFileFind类查找文件 4.了解windows API的文件操作 返回目录
6.1 61文件操作类CFie 学习目标 使用CFil类进行文件读写、删 除、改名及访问文件属性
6.1 文件操作类CFile 学习目标 使用CFile类进行文件读写、删 除、改名及访问文件属性. 6.1 返回第6章
1.文件的打开与关闭 6.1 (1)文件打开函数Open BOOL Open(LPCTSTR IpszFileName, UINT nOpen Flags CFileException* pError =NULL) 参数 [lpszFileName:为欲打开的文件名,文件名可以包含路径和文件名两部分 如“d; baklltest. txt”,如果此字符串不包含文件路径,如“ test bak,则 系统默认为当前路径,即生成的可执行文件所在目录。 参数 oPen Flags:用于设置访问模式,指定当打开文件时进行的动作,可以 将以下所列模式用按位或“卩操作符连接起来。至少应有一个访问模式, mode create是可选的。以下是常用参数列表 CFile: mode create:调用构造函数构造一个新文件。 CFile: mode read:打开文件仅供读, CFile: mode Read write 打开文件供读/写 CFile: mode Write:打开文件仅供写 CFile; type Text::设置文本文件模式(只能用在子类中)。 CFile;: typeBinary:设置二进制文件模式(只能用在子类中)。 参数 pError:是一个异常类的指针,可通过该类和函数的返回值来确定函数 是否调用成功,如下表所示
(1)文件打开函数Open BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL); 参数lpszFileName:为欲打开的文件名,文件名可以包含路径和文件名两部分。 如“d:\\bak\\test.txt”, 如果此字符串不包含文件路径,如“test.bak”,则 系统默认为当前路径,即生成的可执行文件所在目录。 参数nOpenFlags:用于设置访问模式,指定当打开文件时进行的动作,可以 将以下所列模式用按位或“|”操作符连接起来。至少应有一个访问模式, modeCreate是可选的。以下是常用参数列表: CFile::modeCreate:调用构造函数构造一个新文件。 CFile::modeRead : 打开文件仅供读。 CFile::modeReadWrite: 打开文件供读/写。 CFile::modeWrite: 打开文件仅供写。 CFile::typeText: 设置文本文件模式(只能用在子类中)。 CFile::typeBinary:设置二进制文件模式(只能用在子类中)。 参数 pError:是一个异常类的指针,可通过该类和函数的返回值来确定函数 是否调用成功,如下表所示。 6.1 1. 文件的打开与关闭
1.文件的打开与关闭 6.1 Perror 返回值 调用是否成功 异常类的设置 NULL rue False CFileExceptionTrue 「没有变化 CFileexception False 置入错误信息 注意:参数 pError为 CFileException类型。而 CFileException是异 常类的一种,用于检测文件操作中可能出现的错误。关于异 常类,将在第八章进行详细的介绍。 例如: CFile f. if(!.Open( D: \baklltest txt, CFile: mode Create CFile: mode Write) return false
注意:参数 pError为CFileException类型。而CFileException是异 常类的一种,用于检测文件操作中可能出现的错误。关于异 常类,将在第八章进行详细的介绍。 例如: CFile f; if (!f.Open(“D:\\bak\\test.txt”, CFile::modeCreate | CFile::modeWrite)) return false; 6.1 1. 文件的打开与关闭 Perror 返回值 调用是否成功 异常类的设置 NULL True Y NULL False N CFileException True Y 没有变化 CFileException False N 置入错误信息
1.文件的打开与关闭 6.1 (2)用于打开文件的构造函数 CFile(LPCTSTR lpszFileName, UINT nOpenFlags) throw( CFile Exception 如 CFile f(“D: lbaklitest txt”,Cfle: mode read); 注意:构造函数没有返回值,当打开文件出错时只是产生一个异常。所以不 能象函数那样通过分支语句来保证文件已打开,而应使用TRY/ CATCH 宏来判断 例 CString strFileName="D: \ baklltest txt TRY CFile f(strFileName, CFile: mode Create I CFile: mode Write); CATCH(CfileException e) #ifdef DEBUG afx.<<"文件不能打开!"<<e> m cause≤<"n"; #endif JEND CATCH
(2)用于打开文件的构造函数 CFile(LPCTSTR lpszFileName, UINT nOpenFlags) throw( CFileException ); 如: CFile f(“D:\\bak\\test.txt”, Cfile::modeRead); 注意:构造函数没有返回值,当打开文件出错时只是产生一个异常。所以不 能象函数那样通过分支语句来保证文件已打开,而应使用TRY/CATCH 宏来判断。 例: CString strFileName = “D:\\bak\\test.txt”; TRY { CFile f(strFileName,CFile::modeCreate | CFile::modeWrite); } CATCH(CfileException e) { #ifdef_DEBUG afxDump<<″文件不能打开!″<<e->m_cause<<″\n″; #endif }END_CATCH 6.1 1. 文件的打开与关闭