Classe CAtlFile
Essa classe fornece um wrapper fino em torno da API de tratamento de arquivos do Windows.
Importante
Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.
Sintaxe
class CAtlFile : public CHandle
Membros
Construtores públicos
Nome | Descrição |
---|---|
CAtlFile::CAtlFile | O construtor . |
Métodos públicos
Nome | Descrição |
---|---|
CAtlFile::Create | Chame este método para criar ou abrir um arquivo. |
CAtlFile::Flush | Chame este método para limpar os buffers do arquivo e fazer com que todos os dados em buffer sejam gravados no arquivo. |
CAtlFile::GetOverlappedResult | Chame este método para obter os resultados de uma operação sobreposta no arquivo. |
CAtlFile::GetPosition | Chame este método para obter a posição atual do ponteiro do arquivo. |
CAtlFile::GetSize | Chame este método para obter o tamanho em bytes do arquivo. |
CAtlFile::LockRange | Chame esse método para bloquear uma região no arquivo para impedir que outros processos o acessem. |
CAtlFile::Read | Chame este método para ler dados de um arquivo começando na posição indicada pelo ponteiro do arquivo. |
CAtlFile::Seek | Chame este método para mover o ponteiro do arquivo. |
CAtlFile::SetSize | Chame este método para definir o tamanho do arquivo. |
CAtlFile::UnlockRange | Chame este método para desbloquear uma região do arquivo. |
CAtlFile::Write | Chame este método para gravar dados no arquivo começando na posição indicada pelo ponteiro do arquivo. |
Membros de dados protegidos
Nome | Descrição |
---|---|
CAtlFile::m_pTM | Ponteiro para o objeto CAtlTransactionManager |
Comentários
Use esta classe quando as necessidades de tratamento de arquivo forem relativamente simples, mas é necessária mais abstração do que a API do Windows fornece, sem incluir dependências MFC.
Hierarquia de herança
CAtlFile
Requisitos
Cabeçalho: atlfile.h
CAtlFile::CAtlFile
O construtor .
CAtlFile() throw();
CAtlFile(CAtlTransactionManager* pTM = NULL) throw();
CAtlFile(CAtlFile& file) throw();
explicit CAtlFile(HANDLE hFile) throw();
Parâmetros
file
O objeto do arquivo.
hFile
O identificador do arquivo.
pTM
Ponteiro para objeto CAtlTransactionManager
Comentários
O construtor de cópia transfere a propriedade do identificador do arquivo do objeto CAtlFile
original para o objeto recém-construído.
CAtlFile::Create
Chame este método para criar ou abrir um arquivo.
HRESULT Create(
LPCTSTR szFilename,
DWORD dwDesiredAccess,
DWORD dwShareMode,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL,
LPSECURITY_ATTRIBUTES lpsa = NULL,
HANDLE hTemplateFile = NULL) throw();
Parâmetros
szFilename
O nome do arquivo.
dwDesiredAccess
O acesso desejado. Consulte dwDesiredAccess no CreateFile no SDK do Windows.
dwShareMode
O modo de compartilhamento. Confira dwShareMode em CreateFile
.
dwCreationDisposition
A disposição de criação. Confira dwCreationDisposition em CreateFile
.
dwFlagsAndAttributes
Os sinalizadores e atributos. Confira dwFlagsAndAttributes em CreateFile
.
lpsa
Os atributos de segurança. Confira lpSecurityAttributes em CreateFile
.
hTemplateFile
O arquivo de modelo. Confira hTemplateFile em CreateFile
.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Chame CreateFile para criar ou abrir o arquivo.
CAtlFile::Flush
Chame este método para limpar os buffers do arquivo e fazer com que todos os dados em buffer sejam gravados no arquivo.
HRESULT Flush() throw();
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Chame FlushFileBuffers para liberar dados em buffer para o arquivo.
CAtlFile::GetOverlappedResult
Chame este método para obter os resultados de uma operação sobreposta no arquivo.
HRESULT GetOverlappedResult(
LPOVERLAPPED pOverlapped,
DWORD& dwBytesTransferred,
BOOL bWait) throw();
Parâmetros
pOverlapped
A estrutura sobreposta. Confira lpOverlapped em GetOverlappedResult no SDK do Windows.
dwBytesTransferred
Os bytes transferidos. Confira lpNumberOfBytesTransferred em GetOverlappedResult
.
bWait
A opção de espera. Confira bWait em GetOverlappedResult
.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Chame GetOverlappedResult para obter os resultados de uma operação sobreposta no arquivo.
CAtlFile::GetPosition
Chame este método para obter a posição atual do ponteiro do arquivo.
HRESULT GetPosition(ULONGLONG& nPos) const throw();
Parâmetros
nPos
A posição em bytes.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Chame SetFilePointer para obter a posição atual do ponteiro do arquivo.
CAtlFile::GetSize
Chame este método para obter o tamanho em bytes do arquivo.
HRESULT GetSize(ULONGLONG& nLen) const throw();
Parâmetros
nLen
O número de bytes no arquivo.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Chame GetFileSize para obter o tamanho em bytes do arquivo.
CAtlFile::LockRange
Chame esse método para bloquear uma região no arquivo para impedir que outros processos o acessem.
HRESULT LockRange(ULONGLONG nPos, ULONGLONG nCount) throw();
Parâmetros
nPos
A posição no arquivo em que o bloqueio deve começar.
nCount
O comprimento do intervalo de bytes a ser bloqueado.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Chame LockFile para bloquear uma região no arquivo. Os bytes bloqueados em um arquivo impedem o acesso a esses bytes por outros processos. Você pode bloquear mais de uma região de um arquivo, mas nenhuma região sobreposta é permitida. Quando você desbloqueia uma região usando CAtlFile::UnlockRange, o intervalo de bytes deve corresponder exatamente à região que foi bloqueada anteriormente. LockRange
não mescla regiões adjacentes; se duas regiões bloqueadas forem adjacentes, cada região deverá ser desbloqueada separadamente.
CAtlFile::m_pTM
Ponteiro para um objeto CAtlTransactionManager
.
CAtlTransactionManager* m_pTM;
Comentários
CAtlFile::Read
Chame este método para ler dados de um arquivo começando na posição indicada pelo ponteiro do arquivo.
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();
Parâmetros
pBuffer
Ponteiro para o buffer que receberá os dados lidos do arquivo.
nBufSize
O tamanho do buffer em bytes.
nBytesRead
O número de bytes lidos.
pOverlapped
A estrutura sobreposta. Confira lpOverlapped em ReadFile no SDK do Windows.
pfnCompletionRoutine
A rotina de conclusão. Confira lpCompletionRoutine em ReadFileEx no SDK do Windows.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Os três primeiros formulários chamam ReadFile, o último chama ReadFileEx para ler dados do arquivo. Use CAtlFile::Seek para mover o ponteiro do arquivo.
CAtlFile::Seek
Chame este método para mover o ponteiro do arquivo.
HRESULT Seek(
LONGLONG nOffset,
DWORD dwFrom = FILE_CURRENT) throw();
Parâmetros
nOffset
O deslocamento do ponto de partida fornecido pelo dwFrom.
dwFrom
O ponto de partida (FILE_BEGIN, FILE_CURRENT ou FILE_END).
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Chame SetFilePointer para mover o ponteiro do arquivo.
CAtlFile::SetSize
Chame este método para definir o tamanho do arquivo.
HRESULT SetSize(ULONGLONG nNewLen) throw();
Parâmetros
nNewLen
O novo tamanho do arquivo em bytes.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Chame SetFilePointer e SetEndOfFile para definir o tamanho do arquivo. No retorno, o ponteiro do arquivo é posicionado no final do arquivo.
CAtlFile::UnlockRange
Chame este método para desbloquear uma região do arquivo.
HRESULT UnlockRange(ULONGLONG nPos, ULONGLONG nCount) throw();
Parâmetros
nPos
A posição no arquivo em que o desbloqueio deve começar.
nCount
O comprimento do intervalo de bytes a ser desbloqueado.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Chame UnlockFile para desbloquear uma região do arquivo.
CAtlFile::Write
Chame este método para gravar dados no arquivo começando na posição indicada pelo ponteiro do arquivo.
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();
Parâmetros
pBuffer
O buffer que contém os dados a serem gravados no arquivo.
nBufSize
O número de bytes a ser transferido do buffer.
pOverlapped
A estrutura sobreposta. Confira lpOverlapped em WriteFile no SDK do Windows.
pfnCompletionRoutine
A rotina de conclusão. Confira lpCompletionRoutine em WriteFileEx no SDK do Windows.
pnBytesWritten
Os bytes gravados.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Os três primeiros formulários chamam WriteFile, o último chama WriteFileEx para gravar dados no arquivo. Use CAtlFile::Seek para mover o ponteiro do arquivo.