Classe CAtlTemporaryFile
Essa classe fornece métodos para a criação e o uso de um arquivo temporário.
Importante
Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.
Sintaxe
class CAtlTemporaryFile
Membros
Construtores públicos
Nome | Descrição |
---|---|
CAtlTemporaryFile::CAtlTemporaryFile | O construtor . |
CAtlTemporaryFile::~CAtlTemporaryFile | O destruidor. |
Métodos públicos
Nome | Descrição |
---|---|
CAtlTemporaryFile::Close | Chame esse método para fechar um arquivo temporário e exclua seu conteúdo ou armazene-o sob o nome do arquivo especificado. |
CAtlTemporaryFile::Create | Chame esse método para criar um arquivo temporário. |
CAtlTemporaryFile::Flush | Chame esse método para forçar todos os dados restantes no buffer de arquivo a serem gravados no arquivo temporário. |
CAtlTemporaryFile::GetPosition | Chame este método para obter a posição atual do ponteiro do arquivo. |
CAtlTemporaryFile::GetSize | Chame esse método para obter o tamanho em bytes do arquivo temporário. |
CAtlTemporaryFile::HandsOff | Chame esse método para desassociar o arquivo do objeto CAtlTemporaryFile . |
CAtlTemporaryFile::HandsOn | Chame esse método para abrir um arquivo temporário existente e posicione o ponteiro no final do arquivo. |
CAtlTemporaryFile::LockRange | Chame esse método para bloquear uma região no arquivo para impedir que outros processos o acessem. |
CAtlTemporaryFile::Read | Chame esse método para ler dados do arquivo temporário começando na posição indicada pelo ponteiro do arquivo. |
CAtlTemporaryFile::Seek | Chame esse método para mover o ponteiro do arquivo temporário. |
CAtlTemporaryFile::SetSize | Chame esse método para definir o tamanho do arquivo temporário. |
CAtlTemporaryFile::TempFileName | Chame esse método para retornar o nome do arquivo temporário. |
CAtlTemporaryFile::UnlockRange | Chame esse método para desbloquear uma região do arquivo temporário. |
CAtlTemporaryFile::Write | Chame este método para gravar dados no arquivo temporário começando na posição indicada pelo ponteiro do arquivo. |
Operadores públicos
Nome | Descrição |
---|---|
CAtlTemporaryFile::operator HANDLE | Retorna um identificador para o arquivo temporário. |
Comentários
CAtlTemporaryFile
facilita a criação e o uso de um arquivo temporário. O arquivo é automaticamente nomeado, aberto, fechado e excluído. Se o conteúdo do arquivo for necessário depois que o arquivo for fechado, ele poderá ser salvo em um novo arquivo com um nome especificado.
Requisitos
Cabeçalho: atlfile.h
Exemplo
Consulte o exemplo de CAtlTemporaryFile::CAtlTemporaryFile.
CAtlTemporaryFile::CAtlTemporaryFile
O construtor .
CAtlTemporaryFile() throw();
Comentários
Um arquivo não é realmente aberto até que uma chamada seja feita para CAtlTemporaryFile::Create.
Exemplo
// Declare the temporary file object
CAtlTemporaryFile myTempFile;
// Create the temporary file, without caring where it
// will be created, but with both read and write access.
ATLVERIFY (myTempFile.Create(NULL, GENERIC_READ|GENERIC_WRITE) == S_OK);
// Create some data to write to the file
int nBuffer[100];
DWORD bytes_written = 0, bytes_read = 0;
int i;
for (i = 0; i < 100; i++)
nBuffer[i] = i;
// Write some data to the file
myTempFile.Write(&nBuffer, sizeof(nBuffer), &bytes_written);
// Confirm it was written ok
ATLASSERT(bytes_written == sizeof(nBuffer));
// Flush the data to disk
ATLVERIFY(myTempFile.Flush() == S_OK);
// Reset the file pointer to the beginning of the file
ATLVERIFY(myTempFile.Seek(0, FILE_BEGIN) == S_OK);
// Read in the data
myTempFile.Read(&nBuffer, sizeof(nBuffer), bytes_read);
// Confirm it was read ok
ATLASSERT(bytes_read == sizeof(nBuffer));
// Close the file, making a copy of it at another location
ATLVERIFY(myTempFile.Close(_T("c:\\temp\\mydata.tmp")) == S_OK);
CAtlTemporaryFile::~CAtlTemporaryFile
O destruidor.
~CAtlTemporaryFile() throw();
Comentários
O destruidor chama CAtlTemporaryFile::Close.
CAtlTemporaryFile::Close
Chame esse método para fechar um arquivo temporário e exclua seu conteúdo ou armazene-o sob o nome do arquivo especificado.
HRESULT Close(LPCTSTR szNewName = NULL) throw();
Parâmetros
szNewName
O nome do novo arquivo para armazenar o conteúdo do arquivo temporário. Se esse argumento for NULL, o conteúdo do arquivo temporário será excluído.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Exemplo
Consulte o exemplo de CAtlTemporaryFile::CAtlTemporaryFile.
CAtlTemporaryFile::Create
Chame esse método para criar um arquivo temporário.
HRESULT Create(LPCTSTR pszDir = NULL, DWORD dwDesiredAccess = GENERIC_WRITE) throw();
Parâmetros
pszDir
O caminho para o arquivo temporário. Se for NULL, GetTempPath será chamado para atribuir um caminho.
dwDesiredAccess
O acesso desejado. Consulte dwDesiredAccess no CreateFile no SDK do Windows.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Exemplo
Consulte o exemplo de CAtlTemporaryFile::CAtlTemporaryFile.
CAtlTemporaryFile::Flush
Chame esse método para forçar todos os dados restantes no buffer de arquivo a serem gravados no arquivo temporário.
HRESULT Flush() throw();
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Semelhante a CAtlTemporaryFile::HandsOff, exceto que o arquivo não está fechado.
Exemplo
Consulte o exemplo de CAtlTemporaryFile::CAtlTemporaryFile.
CAtlTemporaryFile::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
Para alterar a posição do ponteiro do arquivo, use CAtlTemporaryFile::Seek.
CAtlTemporaryFile::GetSize
Chame esse método para obter o tamanho em bytes do arquivo temporário.
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.
CAtlTemporaryFile::HandsOff
Chame esse método para desassociar o arquivo do objeto CAtlTemporaryFile
.
HRESULT HandsOff() throw();
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
HandsOff
e CAtlTemporaryFile::HandsOn são usados para desassociar o arquivo do objeto e reanexá-lo, se necessário. HandsOff
forçará todos os dados restantes no buffer de arquivo a serem gravados no arquivo temporário e, em seguida, fechará o arquivo. Se você quiser fechar e excluir o arquivo permanentemente ou se quiser fechar e reter o conteúdo do arquivo com um determinado nome, use CAtlTemporaryFile::Close.
CAtlTemporaryFile::HandsOn
Chame esse método para abrir um arquivo temporário existente e posicione o ponteiro no final do arquivo.
HRESULT HandsOn() throw();
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
CAtlTemporaryFile::HandsOff e HandsOn
são usados para desassociar o arquivo do objeto e reanexá-lo, se necessário.
CAtlTemporaryFile::LockRange
Chame esse método para bloquear uma região no arquivo temporário 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
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. Para desbloquear uma região com êxito, use CAtlTemporaryFile::UnlockRange, garantindo que o intervalo de bytes corresponda 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.
CAtlTemporaryFile::operator HANDLE
Retorna um identificador para o arquivo temporário.
operator HANDLE() throw();
CAtlTemporaryFile::Read
Chame esse método para ler dados do arquivo temporário começando na posição indicada pelo ponteiro do arquivo.
HRESULT Read(
LPVOID pBuffer,
DWORD nBufSize,
DWORD& nBytesRead) 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.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Chama CAtlFile::Read. Para alterar a posição do ponteiro do arquivo, chame CAtlTemporaryFile::Seek.
Exemplo
Consulte o exemplo de CAtlTemporaryFile::CAtlTemporaryFile.
CAtlTemporaryFile::Seek
Chame esse método para mover o ponteiro do arquivo temporário.
HRESULT Seek(LONGLONG nOffset, DWORD dwFrom = FILE_CURRENT) throw();
Parâmetros
nOffset
O deslocamento, em bytes, do ponto de partida fornecido por 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
Chama CAtlFile::Seek. Para obter a posição atual do ponteiro do arquivo, chame CAtlTemporaryFile::GetPosition.
Exemplo
Consulte o exemplo de CAtlTemporaryFile::CAtlTemporaryFile.
CAtlTemporaryFile::SetSize
Chame esse método para definir o tamanho do arquivo temporário.
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
Chama CAtlFile::SetSize. No retorno, o ponteiro do arquivo é posicionado no final do arquivo.
CAtlTemporaryFile::TempFileName
Chame esse método para retornar o nome do arquivo temporário.
LPCTSTR TempFileName() throw();
Valor de retorno
Retorna o LPCTSTR apontando para o nome do arquivo.
Comentários
O nome do arquivo é gerado em CAtlTemporaryFile::CAtlTemporaryFile com uma chamada para a função do SDK do Windows GetTempFile. A extensão de arquivo sempre será "TFR" para o arquivo temporário.
CAtlTemporaryFile::UnlockRange
Chame esse método para desbloquear uma região do arquivo temporário.
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
Chama CAtlFile::UnlockRange.
CAtlTemporaryFile::Write
Chame este método para gravar dados no arquivo temporário começando na posição indicada pelo ponteiro do arquivo.
HRESULT Write(
LPCVOID pBuffer,
DWORD nBufSize,
DWORD* pnBytesWritten = NULL) 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.
pnBytesWritten
O número de bytes gravados.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Chama CAtlFile::Write.
Exemplo
Consulte o exemplo de CAtlTemporaryFile::CAtlTemporaryFile.