打开文件

在 MFC 中,最常见的文件打开方式是一个两阶段过程。

打开文件

  1. 创建文件对象,无需指定路径或权限标志。

    一般通过在堆栈框架上声明 CFile 变量来创建文件对象。

  2. 为文件对象调用 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 函数。

另请参阅

CFile 类
CFile::Open
文件