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


CFile::CFile

Создает и инициализирует объект CFile.

CFile( ); CFile(    CAtlTransactionManager* pTM ); CFile(    HANDLE hFile  ); CFile(    LPCTSTR lpszFileName,    UINT nOpenFlags  ); CFile(    LPCTSTR lpszFileName,    UINT nOpenFlags,    CAtlTransactionManager* pTM );

Параметры

  • hFile
    Дескриптор файла, который будет присоединен к объекту CFile.

  • lpszFileName
    Относительный или полный путь к файлу, который будет присоединен к объекту CFile.

  • nOpenFlags
    Побитовое сочетание (ИЛИ) параметров доступа к указанному файлу. Возможные параметры см. в разделе "Заметки".

  • pTM
    Указатель на объект CAtlTransactionManager.

Заметки

В следующих пяти таблицах представлены доступные параметры для nOpenFlags.

Выберите только один из следующих параметров режима доступа к файлу. Режим доступа к файлу по умолчанию — CFile::modeRead, т. е. только для чтения.

Значение

Описание

CFile::modeRead

Запрашивает доступ только для чтения.

CFile::modeWrite

Запрашивает доступ только для записи.

CFile::modeReadWrite

Запрашивает доступ для чтения и записи.

Выберите один из следующих параметров режима символов.

Значение

Описание

CFile::typeBinary

Задает двоичный режим (используется только в производных классах).

CFile::typeText

Задает текстовый режим со специальной обработкой пар "возврат каретки — перевод строки" (используется только в производных классах).

CFile::typeUnicode

Задает режим Юникода (используется только в производных классах). Текст записывается в файл в формате Юникод, если приложение использует конфигурацию Юникода. Данные BOM в файл не записываются.

Выберите только один из следующих параметров режима общего доступа к файлу. Режим общего доступа к файлу по умолчанию — CFile::shareExclusive, т. е. эксклюзивный доступ.

Значение

Описание

CFile::shareDenyNone

Нет ограничений по общему доступу.

CFile::shareDenyRead

Запрет доступа для чтения для всех других пользователей.

CFile::shareDenyWrite

Запрет доступа для записи для всех других пользователей.

CFile::shareExclusive

Запрет доступа для чтения и записи для всех других пользователей.

Выберите первый или и первый, и второй из следующих параметров режима создания файла. Режим создания по умолчанию — CFile::modeNoTruncate, т. е. открывается существующий файл.

Значение

Описание

CFile::modeCreate

Создает файл, только если он не существует. В противном случае вызывается исключение CFileException.

CFile::modeNoTruncate

Создает файл, если он не существует. В противном случае файл присоединяется к объекту CFile.

Выберите соответствующие параметры кэширования файлов, описанные далее. По умолчанию система использует схему кэширования общего назначения, которая недоступна в виде параметра.

Значение

Описание

CFile::osNoBuffer

Система не использует промежуточный кэш для файла. Этот параметр отменяет использование следующих двух параметров.

CFile::osRandomAccess

Файловый кэш оптимизирован для случайного доступа. Не используйте этот параметр вместе с параметром последовательного сканирования.

CFile::osSequentialScan

Файловый кэш оптимизирован для последовательного доступа. Не используйте этот параметр вместе с параметром случайного доступа.

CFile::osWriteThrough

Операции записи выполняются без задержки.

Выберите следующий параметр безопасности, чтобы дескриптор файла не наследовался. По умолчанию любые новые дочерние процессы могут использовать дескриптор файла.

Значение

Описание

CFile::modeNoInherit

Запрещает дочерним процессам использовать дескриптор файла.

Конструктор по умолчанию инициализирует члены, но не присоединяет файл к объекту CFile. После использования этого конструктора вызовите метод CFile::Open, чтобы открыть файл и присоединить его к объекту CFile.

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

Конструктор с двумя параметрами инициализирует члены и пытается открыть указанный файл. Если конструктор успешно открывает заданный файл, он присоединяется к объекту CFile. В противном случае конструктор возвращает указатель на объект CInvalidArgException. Дополнительные сведения об обработке исключений см. в разделе Исключения.

Если объект CFile успешно открывает указанный файл, он закрывается автоматически при удалении объекта CFile. В противном случае необходимо явно закрыть файл, после отмены его присоединения к объекту CFile.

Пример

В следующем коде показано использование CFile.

HANDLE hFile = CreateFile(_T("CFile_File.dat"),
   GENERIC_WRITE, FILE_SHARE_READ,
   NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

if (hFile == INVALID_HANDLE_VALUE)
{
   AfxMessageBox(_T("Couldn't create the file!"));
}
else
{
   // Attach a CFile object to the handle we have.
   CFile myFile(hFile);

   static const TCHAR sz[] = _T("I love CFile!");

   // write string
   myFile.Write(sz, sizeof(sz));

   // We can call Close() explicitly, but the destructor would have 
   // also closed the file for us. Note that there's no need to 
   // call the CloseHandle() on the handle returned by the API because 
   // MFC will close it for us.
   myFile.Close();

Требования

Заголовок: afx.h

См. также

Ссылки

Класс CFile

Диаграмма иерархии