在 MFC 中,打开文件的最常见方法是两个阶段的过程。
打开文件
在不指定路径或权限标志的情况下创建文件对象。
通常通过在堆栈帧上声明 CFile 变量来创建文件对象。
为文件对象调用 Open 成员函数,提供路径和权限标志。
如果文件成功打开,则返回值将为非零;如果无法打开指定的文件,则返回值为
Open
0。 成员Open
函数的原型如下:virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL );
打开的标志指定文件所需的权限,例如只读权限。 可能的标志值在
CFile
类中被定义为枚举常量,因此它们由 "CFile::
" 限定,如CFile::modeRead
中所示。 如果要创建文件,请使用CFile::modeCreate
标志。
以下示例演示如何创建具有读/写权限的新文件(将以前的任何文件替换为同一路径):
TCHAR* pszFileName = _T("c:\\test\\myfile.dat");
CFile myFile;
CFileException fileException;
if ( !myFile.Open( pszFileName, CFile::modeCreate |
CFile::modeReadWrite, &fileException ) )
{
TRACE( _T("Can't open file %s, error = %u\n"),
pszFileName, fileException.m_cause );
}
注释
此示例创建并打开文件。 如果出现问题,调用 Open
可以在其最后一个参数中返回对象 CFileException
,如下所示。 TRACE 宏打印文件名和代码,指示失败原因。 如果需要更详细的错误报告,可以调用 AfxThrowFileException
函数。