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.