CFile类简介

来源:互联网 发布:吉赛尔邦辰 小李子知乎 编辑:程序博客网 时间:2024/06/15 21:55
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为要从缓冲区传输的字节数 


-------------------- 
值得注意的是CStdioFile是CFile的继承类,在直接对字符操作的时候用CStdioFile更好一些。
原创粉丝点击