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