Класс 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.
Иерархия наследования
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 для перемещения указателя файла.