Поделиться через


Открытие файлов

В MFC наиболее распространенный способ открытия файла — это двухэтапный процесс.

Открытие файла

  1. Создайте объект файла без указания пути или флагов разрешений.

    Обычно создается объект файла, объявляя переменную CFile в кадре стека.

  2. Вызовите функцию Open member для объекта файла, указав путь и флаги разрешений.

    Возвращаемое значение 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
Файлы