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


Класс CAtlFile

Этот класс предоставляет тонкий оболочку по 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