Condividi tramite


Classe CAtlTemporaryFile

Questa classe fornisce metodi per la creazione e l'uso di un file temporaneo.

Importante

Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.

Sintassi

class CAtlTemporaryFile

Membri

Costruttori pubblici

Nome Descrizione
CAtlTemporaryFile::CAtlTemporaryFile Costruttore.
CAtlTemporaryFile::~CAtlTemporaryFile Distruttore.

Metodi pubblici

Nome Descrizione
CAtlTemporaryFile::Close Chiamare questo metodo per chiudere un file temporaneo ed eliminarlo o archiviarli con il nome file specificato.
CAtlTemporaryFile::Create Chiamare questo metodo per creare un file temporaneo.
CAtlTemporaryFile::Flush Chiamare questo metodo per forzare la scrittura dei dati rimanenti nel buffer di file nel file temporaneo.
CAtlTemporaryFile::GetPosition Chiamare questo metodo per ottenere la posizione del puntatore del file corrente.
CAtlTemporaryFile::GetSize Chiamare questo metodo per ottenere le dimensioni in byte del file temporaneo.
CAtlTemporaryFile::HandsOff Chiamare questo metodo per annullare l'associazione del file dall'oggetto CAtlTemporaryFile .
CAtlTemporaryFile::HandsOn Chiamare questo metodo per aprire un file temporaneo esistente e posizionare il puntatore alla fine del file.
CAtlTemporaryFile::LockRange Chiamare questo metodo per bloccare un'area nel file per impedire ad altri processi di accedervi.
CAtlTemporaryFile::Read Chiamare questo metodo per leggere i dati dal file temporaneo a partire dalla posizione indicata dal puntatore al file.
CAtlTemporaryFile::Seek Chiamare questo metodo per spostare il puntatore al file temporaneo.
CAtlTemporaryFile::SetSize Chiamare questo metodo per impostare le dimensioni del file temporaneo.
CAtlTemporaryFile::TempFileName Chiamare questo metodo per restituire il nome del file temporaneo.
CAtlTemporaryFile::UnlockRange Chiamare questo metodo per sbloccare un'area del file temporaneo.
CAtlTemporaryFile::Write Chiamare questo metodo per scrivere dati nel file temporaneo a partire dalla posizione indicata dal puntatore al file.

Operatori pubblici

Nome Descrizione
CAtlTemporaryFile::operator HANDLE Restituisce un handle al file temporaneo.

Osservazioni:

CAtlTemporaryFile semplifica la creazione e l'uso di un file temporaneo. Il file viene denominato automaticamente, aperto, chiuso ed eliminato. Se il contenuto del file è necessario dopo la chiusura del file, è possibile salvarli in un nuovo file con un nome specificato.

Requisiti

Intestazione: atlfile.h

Esempio

Vedere l'esempio per CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::CAtlTemporaryFile

Costruttore.

CAtlTemporaryFile() throw();

Osservazioni:

Un file non viene effettivamente aperto fino a quando non viene effettuata una chiamata a CAtlTemporaryFile::Create.

Esempio

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

Distruttore.

~CAtlTemporaryFile() throw();

Osservazioni:

Il distruttore chiama CAtlTemporaryFile::Close.

CAtlTemporaryFile::Close

Chiamare questo metodo per chiudere un file temporaneo ed eliminarlo o archiviarli con il nome file specificato.

HRESULT Close(LPCTSTR szNewName = NULL) throw();

Parametri

szNewName
Nome del nuovo file in cui archiviare il contenuto del file temporaneo. Se questo argomento è NULL, il contenuto del file temporaneo viene eliminato.

Valore restituito

Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.

Esempio

Vedere l'esempio per CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Create

Chiamare questo metodo per creare un file temporaneo.

HRESULT Create(LPCTSTR pszDir = NULL, DWORD dwDesiredAccess = GENERIC_WRITE) throw();

Parametri

pszDir
Percorso del file temporaneo. Se è NULL, verrà chiamato GetTempPath per assegnare un percorso.

dwDesiredAccess
Accesso desiderato. Vedere dwDesiredAccess in CreateFile in Windows SDK.

Valore restituito

Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.

Esempio

Vedere l'esempio per CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Flush

Chiamare questo metodo per forzare la scrittura dei dati rimanenti nel buffer di file nel file temporaneo.

HRESULT Flush() throw();

Valore restituito

Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.

Osservazioni:

Simile a CAtlTemporaryFile::HandsOff, ad eccezione del fatto che il file non è chiuso.

Esempio

Vedere l'esempio per CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::GetPosition

Chiamare questo metodo per ottenere la posizione del puntatore del file corrente.

HRESULT GetPosition(ULONGLONG& nPos) const throw();

Parametri

nPos
Posizione in byte.

Valore restituito

Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.

Osservazioni:

Per modificare la posizione del puntatore al file, usare CAtlTemporaryFile::Seek.

CAtlTemporaryFile::GetSize

Chiamare questo metodo per ottenere le dimensioni in byte del file temporaneo.

HRESULT GetSize(ULONGLONG& nLen) const throw();

Parametri

nLen
Numero di byte nel file.

Valore restituito

Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.

CAtlTemporaryFile::HandsOff

Chiamare questo metodo per annullare l'associazione del file dall'oggetto CAtlTemporaryFile .

HRESULT HandsOff() throw();

Valore restituito

Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.

Osservazioni:

HandsOff E CAtlTemporaryFile::HandsOn vengono usati per annullare l'associazione del file dall'oggetto e ricollegarlo, se necessario. HandsOff forza la scrittura dei dati rimanenti nel buffer di file nel file temporaneo e quindi la chiusura del file. Se si desidera chiudere ed eliminare il file in modo permanente o se si desidera chiudere e conservare il contenuto del file con un nome specificato, usare CAtlTemporaryFile::Close.

CAtlTemporaryFile::HandsOn

Chiamare questo metodo per aprire un file temporaneo esistente e posizionare il puntatore alla fine del file.

HRESULT HandsOn() throw();

Valore restituito

Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.

Osservazioni:

CAtlTemporaryFile::HandsOff e HandsOn vengono usati per annullare l'associazione del file dall'oggetto e ricollegarlo, se necessario.

CAtlTemporaryFile::LockRange

Chiamare questo metodo per bloccare un'area nel file temporaneo per impedire ad altri processi di accedervi.

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

Parametri

nPos
Posizione nel file in cui deve iniziare il blocco.

nCount
Lunghezza dell'intervallo di byte da bloccare.

Valore restituito

Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.

Osservazioni:

Il blocco di byte in un file impedisce l'accesso a tali byte da altri processi. È possibile bloccare più aree di un file, ma non sono consentite aree sovrapposte. Per sbloccare correttamente un'area, usare CAtlTemporaryFile::UnlockRange, assicurando che l'intervallo di byte corrisponda esattamente all'area precedentemente bloccata. LockRange non unisce aree adiacenti; se due aree bloccate sono adiacenti, è necessario sbloccare ognuna separatamente.

CAtlTemporaryFile::operator HANDLE

Restituisce un handle al file temporaneo.

operator HANDLE() throw();

CAtlTemporaryFile::Read

Chiamare questo metodo per leggere i dati dal file temporaneo a partire dalla posizione indicata dal puntatore al file.

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    DWORD& nBytesRead) throw();

Parametri

pBuffer
Puntatore al buffer che riceverà i dati letti dal file.

nBufSize
Dimensioni del buffer, in byte.

nBytesRead
Numero di byte letti.

Valore restituito

Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.

Osservazioni:

Chiama CAtlFile::Read. Per modificare la posizione del puntatore al file, chiamare CAtlTemporaryFile::Seek.

Esempio

Vedere l'esempio per CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Seek

Chiamare questo metodo per spostare il puntatore al file temporaneo.

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

Parametri

nOffset
Offset, in byte, dal punto iniziale dato da dwFrom.

dwFrom
Punto iniziale (FILE_BEGIN, FILE_CURRENT o FILE_END).

Valore restituito

Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.

Osservazioni:

Chiama CAtlFile::Seek. Per ottenere la posizione del puntatore al file corrente, chiamare CAtlTemporaryFile::GetPosition.

Esempio

Vedere l'esempio per CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::SetSize

Chiamare questo metodo per impostare le dimensioni del file temporaneo.

HRESULT SetSize(ULONGLONG nNewLen) throw();

Parametri

nNewLen
Nuova lunghezza del file in byte.

Valore restituito

Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.

Osservazioni:

Chiama CAtlFile::SetSize. In caso di restituzione, il puntatore al file viene posizionato alla fine del file.

CAtlTemporaryFile::TempFileName

Chiamare questo metodo per restituire il nome del file temporaneo.

LPCTSTR TempFileName() throw();

Valore restituito

Restituisce l'oggetto LPCTSTR che punta al nome del file.

Osservazioni:

Il nome file viene generato in CAtlTemporaryFile::CAtlTemporaryFile con una chiamata alla funzione GetTempFiledi Windows SDK. L'estensione del file sarà sempre "TFR" per il file temporaneo.

CAtlTemporaryFile::UnlockRange

Chiamare questo metodo per sbloccare un'area del file temporaneo.

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

Parametri

nPos
Posizione nel file in cui deve iniziare lo sblocco.

nCount
Lunghezza dell'intervallo di byte da sbloccare.

Valore restituito

Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.

Osservazioni:

Chiama CAtlFile::UnlockRange.

CAtlTemporaryFile::Write

Chiamare questo metodo per scrivere dati nel file temporaneo a partire dalla posizione indicata dal puntatore al file.

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    DWORD* pnBytesWritten = NULL) throw();

Parametri

pBuffer
Buffer contenente i dati da scrivere nel file.

nBufSize
Numero di byte da trasferire dal buffer.

pnBytesWritten
Numero di byte scritti.

Valore restituito

Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.

Osservazioni:

Chiama CAtlFile::Write.

Esempio

Vedere l'esempio per CAtlTemporaryFile::CAtlTemporaryFile.

Vedi anche

Cenni preliminari sulla classe
Classe CAtlFile