Partilhar via


CAtlTemporaryFile Classe

Essa classe fornece métodos para a criação e uso de um arquivo temporário.

Importante

Essa classe e seus membros não podem ser usados em aplicativos executados no Tempo de Execução do Windows.

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::Fechar Chame esse método para fechar um arquivo temporário e excluir seu conteúdo ou armazená-los sob o nome de arquivo especificado.
CAtlTemporaryFile::Criar 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 esse 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 CAtlTemporaryFile arquivo do objeto.
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::Ler Chame esse método para ler dados do arquivo temporário começando na posição indicada pelo ponteiro do arquivo.
CAtlTemporaryFile::Procurar Chame esse método para mover o ponteiro de arquivo 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::Gravar Chame esse 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::operador HANDLE Retorna um identificador para o arquivo temporário.

Observações

CAtlTemporaryFile facilita a criação e a utilização de um ficheiro 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.

Requerimentos

Cabeçalho: atlfile.h

Exemplo

Veja o exemplo de CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::CAtlTemporaryFile

O construtor.

CAtlTemporaryFile() throw();

Observações

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();

Observações

O destruidor chama CAtlTemporaryFile::Close.

CAtlTemporaryFile::Fechar

Chame esse método para fechar um arquivo temporário e excluir seu conteúdo ou armazená-los sob o nome de 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

Retorna S_OK em caso de êxito ou um erro HRESULT em caso de falha.

Exemplo

Veja o exemplo de CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Criar

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 isso for NULL, GetTempPath será chamado para atribuir um caminho.

dwDesiredAccess
O acesso desejado. Consulte dwDesiredAccess em CreateFile no SDK do Windows.

Valor de retorno

Retorna S_OK em caso de êxito ou um erro HRESULT em caso de falha.

Exemplo

Veja 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

Retorna S_OK em caso de êxito ou um erro HRESULT em caso de falha.

Observações

Semelhante a CAtlTemporaryFile::HandsOff, exceto que o arquivo não está fechado.

Exemplo

Veja o exemplo de CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::GetPosition

Chame esse 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

Retorna S_OK em caso de êxito ou um erro HRESULT em caso de falha.

Observações

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

Retorna S_OK em caso de êxito ou um erro HRESULT em caso de falha.

CAtlTemporaryFile::HandsOff

Chame esse método para desassociar o CAtlTemporaryFile arquivo do objeto.

HRESULT HandsOff() throw();

Valor de retorno

Retorna S_OK em caso de êxito ou um erro HRESULT em caso de falha.

Observações

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 arquivos 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

Retorna S_OK em caso de êxito ou um erro HRESULT em caso de falha.

Observações

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 acessem ele.

HRESULT LockRange(ULONGLONG nPos, ULONGLONG nCount) throw();

Parâmetros

nPos
A posição no arquivo onde o bloqueio deve começar.

nContagem
O comprimento do intervalo de bytes a ser bloqueado.

Valor de retorno

Retorna S_OK em caso de êxito ou um erro HRESULT em caso de falha.

Observações

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. Para desbloquear com êxito uma região, use CAtlTemporaryFile::UnlockRange, garantindo que o intervalo de bytes corresponda exatamente à região que foi bloqueada anteriormente. LockRange não funde regiões adjacentes; Se duas regiões bloqueadas estiverem adjacentes, você deve desbloquear cada uma separadamente.

CAtlTemporaryFile::operador HANDLE

Retorna um identificador para o arquivo temporário.

operator HANDLE() throw();

CAtlTemporaryFile::Ler

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

Retorna S_OK em caso de êxito ou um erro HRESULT em caso de falha.

Observações

Chama CAtlFile::Read. Para alterar a posição do ponteiro do arquivo, chame CAtlTemporaryFile::Seek.

Exemplo

Veja o exemplo de CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Procurar

Chame esse método para mover o ponteiro de arquivo do arquivo temporário.

HRESULT Seek(LONGLONG nOffset, DWORD dwFrom = FILE_CURRENT) throw();

Parâmetros

nDeslocamento
O deslocamento, em bytes, a partir do ponto inicial dado por dwFrom.

dwDe
O ponto de partida (FILE_BEGIN, FILE_CURRENT ou FILE_END).

Valor de retorno

Retorna S_OK em caso de êxito ou um erro HRESULT em caso de falha.

Observações

Chama CAtlFile::Seek. Para obter a posição atual do ponteiro do arquivo, chame CAtlTemporaryFile::GetPosition.

Exemplo

Veja 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 comprimento do arquivo em bytes.

Valor de retorno

Retorna S_OK em caso de êxito ou um erro HRESULT em caso de falha.

Observações

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.

Observações

O nome do arquivo é gerado em CAtlTemporaryFile::CAtlTemporaryFile com uma chamada para a função GetTempFile SDK do Windows. A extensão do arquivo será sempre "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 onde o desbloqueio deve começar.

nContagem
O comprimento do intervalo de bytes a ser desbloqueado.

Valor de retorno

Retorna S_OK em caso de êxito ou um erro HRESULT em caso de falha.

Observações

Chama CAtlFile::UnlockRange.

CAtlTemporaryFile::Gravar

Chame esse 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 serem transferidos do buffer.

pnBytesWritten
O número de bytes gravados.

Valor de retorno

Retorna S_OK em caso de êxito ou um erro HRESULT em caso de falha.

Observações

Chama CAtlFile::Write.

Exemplo

Veja o exemplo de CAtlTemporaryFile::CAtlTemporaryFile.

Ver também

Visão geral da classe
CAtlFile Classe