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


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
    Побитовое сочетание (ИЛИ) параметров доступа к файлу для указанного файла.См. раздел примeчаний для возможных параметров.

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

Заметки

Следующие 5 таблиц перечислены возможные настройки для параметра nOpenFlags.

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

Значение

Описание

CFile::modeRead

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

CFile::modeWrite

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

CFile::modeReadWrite

Запросы чтения и записи.

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

Значение

Описание

CFile::typeBinary

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

CFile::typeText

Режим текст наборов с специальную обработку для возвращени- перевода строки экипажа взаимодействует в производных классах (общий).

CFile::typeUnicode

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

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

Значение

Описание

CFile::shareDenyNone

Отсутствует совместное использование ограничений.

CFile::shareDenyRead

Запрещает доступ на чтение для всех остальных.

CFile::shareDenyWrite

Запрещает доступ для записи ко всем другим.

CFile::shareExclusive

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

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

Значение

Описание

CFile::modeCreate

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

CFile::modeNoTruncate

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

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

Значение

Описание

CFile::osNoBuffer

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

CFile::osRandomAccess

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

CFile::osSequentialScan

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

CFile::osWriteThrough

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

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

Значение

Описание

CFile::modeNoInherit

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

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

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

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

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

Пример

Все 3 конструктора демонстрируются в следующем коде.

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

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