打开文件
在 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
函数。