Открытие файлов
В MFC наиболее распространенный способ открытия файла — это двухэтапный процесс.
Открытие файла
Создайте объект файла без указания пути или флагов разрешений.
Обычно создается объект файла, объявляя переменную CFile в кадре стека.
Вызовите функцию 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
отчетность об ошибках.