WEB开发网
开发学院软件开发VC MFC教程(11)-- MFC下的文件类 阅读

MFC教程(11)-- MFC下的文件类

 2010-03-25 20:35:02 来源:WEB开发网   
核心提示:文件操作的方法使用Visual C++编程,有如下方法进行文件操作:(1)使用标准C运行库函数,MFC教程(11)-- MFC下的文件类,包括fopen、fclose、fseek等,(2)使用Win16下的文件和目录操作函数,读/写/读写modeRead = 0x0000,modeWrite = 0x0001,mode

文件操作的方法

使用Visual C++编程,有如下方法进行文件操作:

(1)使用标准C运行库函数,包括fopen、fclose、fseek等。

(2)使用Win16下的文件和目录操作函数,如lopen、lclose、lseek等。不过,在Win32下,这些函数主要是为了和Win16向后兼容。

(3)使用Win32下的文件和目录操作函数,如CreateFile,CopyFile,DeleteFile,FindNextFile,等等。

Win32下,打开和创建文件都由CreateFile完成,成功的话,得到一个Win32下的句柄,这不同于“C”的fopen返回的句柄。在Win16下,该句柄和C运行库文件操作函数相容。但在Win32下,“C”的文件操作函数不能使用该句柄,如果需要的话,可以使用函数_open_osfhandle从Win32句柄得到一个“C”文件函数可以使用的文件句柄。

关闭文件使用Win32的CloseHandle。

在Win32下,CreateFile可以操作的对象除了磁盘文件外,还包括设备文件如通讯端口、管道、控制台输入、邮件槽等等。

(4)使用CFile和其派生类进行文件操作。CFile从CObject派生,其派生类包括操作文本文件的CStdioFile,操作内存文件的CmemFile,等等。

CFile是建立在Win32的文件操作体系的基础上,它封装了部分Win32文件操作函数。

最好是使用CFile类(或派生类)的对象来操作文件,必要的话,可以从这些类派生自己的文件操作类。统一使用CFile的界面可以得到好的移植性。

MFC的文件类

MFC用一些类来封装文件访问的Win32 API。以CFile为基础,从CFile派生出几个类,如CStdioFile,CMemFile,MFC内部使用的CMiororFile,等等。

CFile的结构

CFile定义的枚举类型

CFile类定义了一些和文件操作相关的枚举类型,主要有四种:OpenFlags,Attribute,SeekPosition,hFileNull。下面,分别解释这些枚举类型。

OpenFlags

OpenFlags定义了13种文件访问和共享模式:

enum OpenFlags {

//第一(从右,下同)至第二位,打开文件时访问模式,读/写/读写

modeRead = 0x0000,

modeWrite = 0x0001,

modeReadWrite = 0x0002,

shareCompat = 0x0000, //32位MFC中没用

//第五到第七位,打开文件时的共享模式

shareExclusive = 0x0010,//独占方式,禁止其他进程读写

shareDenyWrite = 0x0020,//禁止其他进程写

shareDenyRead = 0x0030,//禁止其他进程读

shareDenyNone = 0x0040,//允许其他进程写

//第八位,打开文件时的文件继承方式

1 2 3 4 5 6  下一页

Tags:MFC 教程 MFC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接