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 Devolução

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 Devolução

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 Devolução

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 Devolução

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 Devolução

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 Devolução

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 Devolução

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 Devolução

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 Devolução

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 Devolução

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 Devolução

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 Devolução

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 Devolução

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 Devolução

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.

Confira também

Visão geral da classe
Classe CAtlFile