首页 > 编程 > C > 正文

CFile类简介

2023-06-09 12:08:02
字体:
来源:转载
供稿:网友

CFile类是MFC文件类的基类,它直接提供非缓冲的二进制磁盘输入/输出设备,并直接地通过派生类支持文本文件和内存文件。

CFile与CArchive类共同使用,支持MFC对象的串行化。该类与其派生类的层次关系让程序通过多形CFile接口操作所有文件对象。例如,一个内存文件相当一个磁盘文件。使用CFile及其派生类进行一般目的的磁盘I/O,使用ofstream或其它Microsoft输入输出流类将格式化文本送到磁盘文件。

通常,一个磁盘文件在CFile构造时自动打开并在析构时关闭。静态成员函数使你可以在不打开文件的情况下检查文件状态。

1、CFile::Close 关闭文件,使该文件不可用于读写

virtual void Close();

2、CFile::GetLength 求文件长度(以字节计)

virtual DWORD GetLength()const;

返回值:文件长度

3、CFile::Open 打开文件

virtual BOOL Open(LPCTSTR lpszFileName,UINT nOpenFlags,CFileException* pError=NULL);

参数:lpszFileName指定打开文件的路径;

nOpenFlags 定义文件的共享和存取方式;

pError指向一个已有的文件异常对象的指针。

nOpenFlags的常用取值:

CFile::modeCreate 创建一个新文件,若文件已存在,则该文件被清空;

CFile::modeRead 用于只读;

CFile::modeReadWrite 用于读写;

CFile::modeWrite 用于只写;

CFile::modeNoInherit 阻止文件被子进程继承;

返回值:若打开成功,返回非0;否则返回0

4、CFile::Read 从文件中读一段数据到一缓冲区中

virtual UINT Read(void* lpBuf,UINT nCount);

参数:lpBuf指向用户定义的缓冲区;

nCount为要从文件中读出的最大字节数

返回值:传输给缓冲区的字节数,可小于nCount所指定的值

5、CFile::Rename 重命名文件(静态函数),目录不可重命名

static void PASCAL Rename(LPCTSTR lpszOldName,LPCTSTR lpszNewName);

参数:lpszOldName 旧路径名

lpszNewName 新路径名

 6、CFile::Remove 删除指定文件(静态函数),不可删除目录

 static void PASCAL Remove(LPCTSTR lpszFileName);

参数:lpszFileName指向删除文件的路径名字符串

7、CFile::Seek 定位当前文件指针

virtual LONG Seek(LONG lOff,UINT nFrom);

参数:lOff 指针移动的字节数,为正时,向后移动,为负时,向前移动

nFrom 指针移动方式,可以是下列值之一:

CFile::begin 将文件指针从文件头移动lOff个字节;

CFile::current 将文件指针从当前位置移动lOff个字节;

CFile::end 将文件指针从文件尾移动lOff个字节;

8、CFile::SeekToBegin 将文件指针设置到文件头,相当于Seek(0L,CFile::begin)

void SeekToBegin();

9、CFile::SeekToEnd 将文件指针设置到文件尾,相当于Seek(0L,CFile::end)

DWORD SeekToEnd();

返回值:文件的字节长度

10、CFile::Write 将数据从一缓冲区写入文件中

virtual void Write(const void* lpBuf,UINT nCount);

参数:lpBuf指向用户定义的缓冲区;

nCount为要从缓冲区传输的字节数

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表