CFile类简介

简介: CFile类简介

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更好一些。


相关文章
|
5月前
|
Java
【零基础学Java】—继承的概述(十九)
【零基础学Java】—继承的概述(十九)
【零基础学Java】—继承的概述(十九)
|
5月前
|
编译器 C++
C++零基础教程(C++中的类1)
C++零基础教程(C++中的类1)
37 0
|
5月前
|
存储 数据安全/隐私保护 C++
C++零基础教程(C++的类2)
C++零基础教程(C++的类2)
27 0
|
5月前
|
存储 数据安全/隐私保护 C++
C++零基础教程(C++中的类)
C++零基础教程(C++中的类)
31 0
|
12月前
|
C语言 C++
【C++】类的简介
【C++】类的简介
156 0
|
C语言 C++
C++中的类简要介绍
C++中的类简要介绍
60 0
|
Java 程序员 编译器
接口的基本介绍
接口的基本介绍
接口的基本介绍
|
SQL druid Java
阅读开源框架,总结Java类的定义
阅读开源框架,总结Java类的定义
|
存储 安全 芯片
封装之打线简介
介绍封装打线的原理,常用材料的优缺点,关键部件,wire bonding 过程,主要参数,线形,线长和主要测试方法。
封装之打线简介
|
设计模式 Java
JavaSE:第七章:高级类特性
JavaSE:第七章:高级类特性
JavaSE:第七章:高级类特性