Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Esta classe fornece um wrapper fino à API de gestão de ficheiros do Windows.
Importante
Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.
Sintaxe
class CAtlFile : public CHandle
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| CAtlFile::CAtlFile | O construtor. |
Métodos Públicos
| Nome | Description |
|---|---|
| CAtlFile::Create | Chame este método para criar ou abrir um ficheiro. |
| CAtlFile::Flush | Chame este método para limpar os buffers do ficheiro e fazer com que todos os dados armazenados sejam escritos no ficheiro. |
| CAtlFile::GetOverlappedResult | Chame este método para obter os resultados de uma operação sobreposta no ficheiro. |
| CAtlFile::GetPosition | Chame este método para obter a posição atual do ponteiro do ficheiro a partir do ficheiro. |
| CAtlFile::GetSize | Chame este método para obter o tamanho em bytes do ficheiro. |
| CAtlFile::LockRange | Chame este método para bloquear uma região no ficheiro e impedir que outros processos acedam a ela. |
| CAtlFile::Read | Chame este método para ler dados de um ficheiro que começa na posição indicada pelo ponteiro do ficheiro. |
| CAtlFile::Seek | Chame este método para mover o ponteiro do ficheiro do ficheiro. |
| CAtlFile::SetSize | Chama este método para definir o tamanho do ficheiro. |
| CAtlFile::UnlockRange | Chama este método para desbloquear uma região do ficheiro. |
| CAtlFile::Write | Chame este método para escrever dados no ficheiro a partir da posição indicada pelo ponteiro do ficheiro. |
Membros de Dados Protegidos
| Nome | Description |
|---|---|
| CAtlFile::m_pTM | Apontador para CAtlTransactionManager objeto |
Observações
Use esta classe quando as necessidades de manuseamento de ficheiros são relativamente simples, mas é necessária mais abstração do que a API do Windows fornece, sem incluir dependências de MFC.
Hierarquia de herança
CAtlFile
Requerimentos
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
ficheiro
O objeto do ficheiro.
hFile
A alça do ficheiro.
pTM
Apontador para o objeto CAtlTransactionManager
Observações
O construtor de cópias transfere a propriedade do handle do ficheiro do objeto original CAtlFile para o objeto recém-construído.
CAtlFile::Create
Chame este método para criar ou abrir um ficheiro.
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
szNome do Ficheiro
O nome do arquivo.
dwDesiredAccess
O acesso desejado. Veja dwDesiredAccess no CreateFile no SDK do Windows.
dwShareMode
O modo partilhar. Ver dwShareMode em CreateFile.
dwCriaçãoDisposição
A disposição criativa. Ver dwCreationDisposition em CreateFile.
dwFlagsAndAttributes
As bandeiras e atributos. Ver dwFlagsAndAttributes em CreateFile.
LPSA
Os atributos de segurança. Ver lpSecurityAttributes em CreateFile.
hTemplateFile
O ficheiro modelo. Ver hTemplateFile em CreateFile.
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
Chama o CreateFile para criar ou abrir o ficheiro.
CAtlFile::Flush
Chame este método para limpar os buffers do ficheiro e fazer com que todos os dados armazenados sejam escritos no ficheiro.
HRESULT Flush() throw();
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
Chama FlushFileBuffers para limpar os dados armazenados no ficheiro.
CAtlFile::GetOverlappedResult
Chame este método para obter os resultados de uma operação sobreposta no ficheiro.
HRESULT GetOverlappedResult(
LPOVERLAPPED pOverlapped,
DWORD& dwBytesTransferred,
BOOL bWait) throw();
Parâmetros
pSobreposto
A estrutura sobreposta. Veja lpOverlapped em GetOverlappedResult no SDK do Windows.
dwBytesTransferred
Os bytes transferidos. Ver lpNumberOfBytesTransferido em GetOverlappedResult.
bEspera
A opção de esperar. Ver bEspera em GetOverlappedResult.
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
Chama GetOverlappedResult para obter os resultados de uma operação sobreposta no ficheiro.
CAtlFile::GetPosition
Chame este método para obter a posição atual do ponteiro do ficheiro.
HRESULT GetPosition(ULONGLONG& nPos) const throw();
Parâmetros
nPos
A posição em bytes.
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
Chama SetFilePointer para obter a posição atual do ponteiro do ficheiro.
CAtlFile::GetSize
Chame este método para obter o tamanho em bytes do ficheiro.
HRESULT GetSize(ULONGLONG& nLen) const throw();
Parâmetros
nLen
O número de bytes no ficheiro.
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
Chama GetFileSize para obter o tamanho em bytes do ficheiro.
CAtlFile::LockRange
Chame este método para bloquear uma região no ficheiro e impedir que outros processos acedam a ela.
HRESULT LockRange(ULONGLONG nPos, ULONGLONG nCount) throw();
Parâmetros
nPos
A posição no ficheiro onde a fechadura deve começar.
nContagem
O comprimento do intervalo de bytes a ser bloqueado.
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
Chama o LockFile para bloquear uma região no ficheiro. Bloquear bytes em um arquivo impede 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 desbloqueias uma região, usando CAtlFile::UnlockRange, o intervalo de bytes deve corresponder exatamente à região que estava previamente bloqueada.
LockRange não funde regiões adjacentes; Se duas regiões bloqueadas estiverem adjacentes, deve desbloquear cada uma separadamente.
CAtlFile::m_pTM
Ponteiro para um objeto CAtlTransactionManager.
CAtlTransactionManager* m_pTM;
Observações
CAtlFile::Read
Chame este método para ler dados de um ficheiro que começa na posição indicada pelo ponteiro do ficheiro.
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
Aponta para o buffer que irá receber os dados lidos do ficheiro.
nBufSize
O tamanho do buffer em bytes.
nBytesRead
O número de bytes lidos.
pSobreposto
A estrutura sobreposta. Veja lpOverlappped em ReadFile no SDK do Windows.
pfnCompletionRoutine
A rotina de conclusão. Veja lpCompletionRoutine no ReadFileEx no SDK do Windows.
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
Os três primeiros formulários chamam ReadFile, o último ReadFileEx para ler dados do ficheiro. Use CAtlFile::Seek para mover o ponteiro do ficheiro.
CAtlFile::Seek
Chame este método para mover o ponteiro do ficheiro do ficheiro.
HRESULT Seek(
LONGLONG nOffset,
DWORD dwFrom = FILE_CURRENT) throw();
Parâmetros
nDeslocamento
O deslocamento em relação ao ponto inicial dado pelo dwFrom.
dwFrom
O ponto de partida (FILE_BEGIN, FILE_CURRENT ou FILE_END).
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
Chama o SetFilePointer para mover o ponteiro do ficheiro.
CAtlFile::SetSize
Chama este método para definir o tamanho do ficheiro.
HRESULT SetSize(ULONGLONG nNewLen) throw();
Parâmetros
nNewLen
O novo comprimento do ficheiro em bytes.
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
Chama SetFilePointer e SetEndOfFile para definir o tamanho do ficheiro. Ao retornar, o ponteiro do ficheiro é posicionado no final do ficheiro.
CAtlFile::UnlockRange
Chama este método para desbloquear uma região do ficheiro.
HRESULT UnlockRange(ULONGLONG nPos, ULONGLONG nCount) throw();
Parâmetros
nPos
A posição no ficheiro onde o desbloqueio deve começar.
nContagem
O comprimento do intervalo de bytes a desbloquear.
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
Chama o UnlockFile para desbloquear uma região do ficheiro.
CAtlFile::Write
Chame este método para escrever dados no ficheiro a partir da posição indicada pelo ponteiro do ficheiro.
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 escritos no ficheiro.
nBufSize
O número de bytes a serem transferidos do buffer.
pSobreposto
A estrutura sobreposta. Veja lpOverlapped no WriteFile no SDK do Windows.
pfnCompletionRoutine
A rotina de conclusão. Veja lpCompletionRoutine no WriteFileEx no SDK do Windows.
pnBytesWritten
Os bytes escritos.
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
Os três primeiros formulários chamam WriteFile, o último chama WriteFileEx para gravar dados no ficheiro. Use CAtlFile::Seek para mover o ponteiro do ficheiro.
Consulte também
Amostra de Destaque
Visão geral da classe
Classe CHandle