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


Класс CAtlFile

Замечание

Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.

Этот класс предоставляет тонкий оболочку по API обработки файлов Windows.

Внимание

Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.

Синтаксис

class CAtlFile : public CHandle

Участники

Открытые конструкторы

Имя Описание
CAtlFile::CAtlFile Конструктор.

Открытые методы

Имя Описание
CAtlFile::Create Вызовите этот метод, чтобы создать или открыть файл.
CAtlFile::Flush Вызовите этот метод, чтобы очистить буферы для файла и вызвать запись всех буферных данных в файл.
CAtlFile::GetOverlappedResult Вызовите этот метод, чтобы получить результаты перекрываемой операции в файле.
CAtlFile::GetPosition Вызовите этот метод, чтобы получить текущую позицию указателя файла из файла.
CAtlFile::GetSize Вызовите этот метод, чтобы получить размер файла в байтах.
CAtlFile::LockRange Вызовите этот метод, чтобы заблокировать регион в файле, чтобы предотвратить доступ к нему других процессов.
CAtlFile::Read Вызовите этот метод для чтения данных из файла, начиная с позиции, указанной указателем файла.
CAtlFile::Seek Вызовите этот метод для перемещения указателя файла.
CAtlFile::SetSize Вызовите этот метод, чтобы задать размер файла.
CAtlFile::UnlockRange Вызовите этот метод, чтобы разблокировать регион файла.
CAtlFile::Write Вызовите этот метод для записи данных в файл, начиная с позиции, указанной указателем файла.

Защищенные члены данных

Имя Описание
CAtlFile::m_pTM Указатель на CAtlTransactionManager объект

Замечания

Используйте этот класс, если требования к обработке файлов относительно просты, но более абстракция, чем предоставляет API Windows, требуется без включения зависимостей MFC.

Иерархия наследования

CHandle

CAtlFile

Требования

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

CAtlFile::CAtlFile

Конструктор.

CAtlFile() throw();
CAtlFile(CAtlTransactionManager* pTM = NULL) throw();
CAtlFile(CAtlFile& file) throw();
explicit CAtlFile(HANDLE hFile) throw();

Параметры

file
Объект файла.

hFile
Дескриптор файла.

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

Замечания

Конструктор копирования передает права владения дескриптором файла из исходного CAtlFile объекта в только что созданный объект.

CAtlFile::Create

Вызовите этот метод, чтобы создать или открыть файл.

HRESULT Create(
    LPCTSTR szFilename,
    DWORD dwDesiredAccess,
    DWORD dwShareMode,
    DWORD dwCreationDisposition,
    DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL,
    LPSECURITY_ATTRIBUTES lpsa = NULL,
    HANDLE hTemplateFile = NULL) throw();

Параметры

szFilename
Имя файла.

dwDesiredAccess
Требуемый доступ. См. dwDesiredAccess в CreateFile в пакете SDK для Windows.

dwShareMode
Режим общего доступа. См . dwShareMode в CreateFile.

dwCreationDisposition
Ликвидация создания. См . раздел dwCreationDisposition in CreateFile.

dwFlagsAndAttributes
Флаги и атрибуты. См . dwFlagsAndAttributes в CreateFile.

lpsa
Атрибуты безопасности. См. сведения о lpSecurityAttributes.CreateFile

hTemplateFile
Файл шаблона. См . раздел hTemplateFile в CreateFile.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

Замечания

Вызывает CreateFile , чтобы создать или открыть файл.

CAtlFile::Flush

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

HRESULT Flush() throw();

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

Замечания

Вызывает FlushFileBuffers для очистки буферизованных данных в файл.

CAtlFile::GetOverlappedResult

Вызовите этот метод, чтобы получить результаты перекрываемой операции в файле.

HRESULT GetOverlappedResult(
    LPOVERLAPPED pOverlapped,
    DWORD& dwBytesTransferred,
    BOOL bWait) throw();

Параметры

pOverlapped
Перекрываемая структура. См. раздел "lpOverlappedResult" в пакете SDK для Windows.

dwBytesTransferred
Переданные байты. См . раздел lpNumberOfBytesTransferred в GetOverlappedResult.

bWait
Параметр ожидания. См . bWait в GetOverlappedResult.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

Замечания

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

CAtlFile::GetPosition

Вызовите этот метод, чтобы получить текущее положение указателя файла.

HRESULT GetPosition(ULONGLONG& nPos) const throw();

Параметры

nPos
Позиция в байтах.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

Замечания

Вызывает SetFilePointer , чтобы получить текущую позицию указателя файла.

CAtlFile::GetSize

Вызовите этот метод, чтобы получить размер файла в байтах.

HRESULT GetSize(ULONGLONG& nLen) const throw();

Параметры

nLen
Количество байтов в файле.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

Замечания

Вызывает GetFileSize , чтобы получить размер файла в байтах.

CAtlFile::LockRange

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

HRESULT LockRange(ULONGLONG nPos, ULONGLONG nCount) throw();

Параметры

nPos
Позиция в файле, в котором должна начинаться блокировка.

nCount
Длина диапазона байтов, которую необходимо заблокировать.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

Замечания

Вызывает LockFile , чтобы заблокировать регион в файле. Блокировка байтов в файле предотвращает доступ других процессов к этим байтам. Вы можете заблокировать несколько областей файла, но перекрывающиеся регионы не разрешены. При разблокировке региона с помощью CAtlFile::UnlockRange диапазон байтов должен точно соответствовать региону, который ранее был заблокирован. LockRange не объединяет смежные регионы; Если два заблокированных региона находятся рядом, необходимо разблокировать каждую отдельно.

CAtlFile::m_pTM

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

CAtlTransactionManager* m_pTM;

Замечания

CAtlFile::Read

Вызовите этот метод для чтения данных из файла, начиная с позиции, указанной указателем файла.

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    DWORD& nBytesRead) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped,
    LPOVERLAPPED_COMPLETION_ROUTINE pfnCompletionRoutine) throw();

Параметры

pBuffer
Указатель на буфер, который получит данные, считываемые из файла.

nBufSize
Размер буфера в байтах.

nBytesRead
Число переданных байтов.

pOverlapped
Перекрываемая структура. См. lpOverlapped в ReadFile в пакете SDK для Windows.

pfnCompletionRoutine
Подпрограмма завершения. См . раздел lpCompletionRoutine в ReadFileEx в пакете SDK для Windows.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

Замечания

Первые три формы вызывают ReadFile, последний ReadFileEx для чтения данных из файла. Используйте CAtlFile::Seek для перемещения указателя файла.

CAtlFile::Seek

Вызовите этот метод для перемещения указателя файла.

HRESULT Seek(
    LONGLONG nOffset,
    DWORD dwFrom = FILE_CURRENT) throw();

Параметры

nOffset
Смещение от начальной точки, заданной dwFrom.

dwFrom
Начальная точка (FILE_BEGIN, FILE_CURRENT или FILE_END).

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

Замечания

Вызывает SetFilePointer для перемещения указателя файла.

CAtlFile::SetSize

Вызовите этот метод, чтобы задать размер файла.

HRESULT SetSize(ULONGLONG nNewLen) throw();

Параметры

nNewLen
Новая длина файла в байтах.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

Замечания

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

CAtlFile::UnlockRange

Вызовите этот метод, чтобы разблокировать регион файла.

HRESULT UnlockRange(ULONGLONG nPos, ULONGLONG nCount) throw();

Параметры

nPos
Позиция в файле, в котором должна начинаться разблокировка.

nCount
Длина диапазона байтов, которую необходимо разблокировать.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

Замечания

Вызывает UnlockFile , чтобы разблокировать регион файла.

CAtlFile::Write

Вызовите этот метод для записи данных в файл, начиная с позиции, указанной указателем файла.

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped,
    LPOVERLAPPED_COMPLETION_ROUTINE pfnCompletionRoutine) throw();

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    DWORD* pnBytesWritten = NULL) throw();

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped) throw();

Параметры

pBuffer
Буфер, содержащий данные, записываемые в файл.

nBufSize
Количество байтов, передаваемых из буфера.

pOverlapped
Перекрываемая структура. См. lpOverlapped в WriteFile в пакете SDK для Windows.

pfnCompletionRoutine
Подпрограмма завершения. См . статью lpCompletionRoutine в WriteFileEx в пакете SDK для Windows.

pnBytesWritten
Записанные байты.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

Замечания

Первые три формы вызывают WriteFile, последняя вызывает WriteFileEx для записи данных в файл. Используйте CAtlFile::Seek для перемещения указателя файла.

См. также

Пример marquee
Общие сведения о классе
Класс CHandle