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