Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека активных шаблонов (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.
Иерархия наследования
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 для перемещения указателя файла.