Classe CAtlFile
Questa classe fornisce un wrapper sottile intorno all'API di gestione dei file di Windows.
Importante
Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.
Sintassi
class CAtlFile : public CHandle
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CAtlFile::CAtlFile | Costruttore. |
Metodi pubblici
Nome | Descrizione |
---|---|
CAtlFile::Create | Chiamare questo metodo per creare o aprire un file. |
CAtlFile::Flush | Chiamare questo metodo per cancellare i buffer per il file e fare in modo che tutti i dati memorizzati nel buffer vengano scritti nel file. |
CAtlFile::GetOverlappedResult | Chiamare questo metodo per ottenere i risultati di un'operazione sovrapposta nel file. |
CAtlFile::GetPosition | Chiamare questo metodo per ottenere la posizione del puntatore del file corrente dal file. |
CAtlFile::GetSize | Chiamare questo metodo per ottenere le dimensioni in byte del file. |
CAtlFile::LockRange | Chiamare questo metodo per bloccare un'area nel file per impedire ad altri processi di accedervi. |
CAtlFile::Read | Chiamare questo metodo per leggere i dati da un file a partire dalla posizione indicata dal puntatore al file. |
CAtlFile::Seek | Chiamare questo metodo per spostare il puntatore al file. |
CAtlFile::SetSize | Chiamare questo metodo per impostare le dimensioni del file. |
CAtlFile::UnlockRange | Chiamare questo metodo per sbloccare un'area del file. |
CAtlFile::Write | Chiamare questo metodo per scrivere dati nel file a partire dalla posizione indicata dal puntatore al file. |
Membri dati protetti
Nome | Descrizione |
---|---|
CAtlFile::m_pTM | Puntatore all'oggetto CAtlTransactionManager |
Osservazioni:
Usare questa classe quando le esigenze di gestione dei file sono relativamente semplici, ma è necessaria un'astrazione maggiore rispetto all'API di Windows, senza includere dipendenze MFC.
Gerarchia di ereditarietà
CAtlFile
Requisiti
Intestazione: atlfile.h
CAtlFile::CAtlFile
Costruttore.
CAtlFile() throw();
CAtlFile(CAtlTransactionManager* pTM = NULL) throw();
CAtlFile(CAtlFile& file) throw();
explicit CAtlFile(HANDLE hFile) throw();
Parametri
file
Oggetto file.
hFile
Handle di file.
pTM
Puntatore all'oggetto CAtlTransactionManager
Osservazioni:
Il costruttore di copia trasferisce la proprietà dell'handle di file dall'oggetto originale CAtlFile
all'oggetto appena costruito.
CAtlFile::Create
Chiamare questo metodo per creare o aprire un file.
HRESULT Create(
LPCTSTR szFilename,
DWORD dwDesiredAccess,
DWORD dwShareMode,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL,
LPSECURITY_ATTRIBUTES lpsa = NULL,
HANDLE hTemplateFile = NULL) throw();
Parametri
szFilename
Nome del file.
dwDesiredAccess
Accesso desiderato. Vedere dwDesiredAccess in CreateFile in Windows SDK.
dwShareMode
Modalità di condivisione. Vedere dwShareMode in CreateFile
.
dwCreationDisposition
Eliminazione della creazione. Vedere dwCreationDisposition in CreateFile
.
dwFlagsAndAttributes
Flag e attributi. Vedere dwFlagsAndAttributes in CreateFile
.
lpsa
Attributi di sicurezza. Vedere lpSecurityAttributes in CreateFile
.
hTemplateFile
File modello. Vedere hTemplateFile in CreateFile
.
Valore restituito
Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.
Osservazioni:
Chiama CreateFile per creare o aprire il file.
CAtlFile::Flush
Chiamare questo metodo per cancellare i buffer per il file e fare in modo che tutti i dati memorizzati nel buffer vengano scritti nel file.
HRESULT Flush() throw();
Valore restituito
Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.
Osservazioni:
Chiama FlushFileBuffers per scaricare i dati memorizzati nel buffer nel file.
CAtlFile::GetOverlappedResult
Chiamare questo metodo per ottenere i risultati di un'operazione sovrapposta nel file.
HRESULT GetOverlappedResult(
LPOVERLAPPED pOverlapped,
DWORD& dwBytesTransferred,
BOOL bWait) throw();
Parametri
pOverlapped
Struttura sovrapposta. Vedi lpOverlapped in GetOverlappedResult in Windows SDK.
dwBytesTransferred
Byte trasferiti. Vedere lpNumberOfBytesTransferred in GetOverlappedResult
.
bWait
Opzione di attesa. Vedere bWait in GetOverlappedResult
.
Valore restituito
Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.
Osservazioni:
Chiama GetOverlappedResult per ottenere i risultati di un'operazione sovrapposta nel file.
CAtlFile::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:
Chiama SetFilePointer per ottenere la posizione corrente del puntatore al file.
CAtlFile::GetSize
Chiamare questo metodo per ottenere le dimensioni in byte del file.
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.
Osservazioni:
Chiama GetFileSize per ottenere le dimensioni in byte del file.
CAtlFile::LockRange
Chiamare questo metodo per bloccare un'area nel file 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:
Chiama LockFile per bloccare un'area nel file. 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. Quando si sblocca un'area usando CAtlFile::UnlockRange, l'intervallo di byte deve corrispondere esattamente all'area bloccata in precedenza. LockRange
non unisce aree adiacenti; se due aree bloccate sono adiacenti, è necessario sbloccare ognuna separatamente.
CAtlFile::m_pTM
Puntatore a un oggetto CAtlTransactionManager
.
CAtlTransactionManager* m_pTM;
Osservazioni:
CAtlFile::Read
Chiamare questo metodo per leggere i dati da un file a partire dalla posizione indicata dal puntatore al file.
HRESULT Read(
LPVOID pBuffer,
DWORD nBufSize) throw();
HRESULT Read(
LPVOID pBuffer,
DWORD nBufSize,
DWORD& nBytesRead) throw();
HRESULT Read(
LPVOID pBuffer,
DWORD nBufSize,
LPOVERLAPPED pOverlapped) throw();
HRESULT Read(
LPVOID pBuffer,
DWORD nBufSize,
LPOVERLAPPED pOverlapped,
LPOVERLAPPED_COMPLETION_ROUTINE pfnCompletionRoutine) throw();
Parametri
pBuffer
Puntatore al buffer che riceverà i dati letti dal file.
nBufSize
Dimensioni del buffer, in byte.
nBytesRead
Numero di byte letti.
pOverlapped
Struttura sovrapposta. Vedere lpOverlapped in ReadFile in Windows SDK.
pfnCompletionRoutine
Routine di completamento. Vedere lpCompletionRoutine in ReadFileEx in Windows SDK.
Valore restituito
Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.
Osservazioni:
I primi tre moduli chiamano ReadFile, l'ultimo ReadFileEx per leggere i dati dal file. Usare CAtlFile::Seek per spostare il puntatore al file.
CAtlFile::Seek
Chiamare questo metodo per spostare il puntatore al file.
HRESULT Seek(
LONGLONG nOffset,
DWORD dwFrom = FILE_CURRENT) throw();
Parametri
nOffset
Offset dal punto iniziale specificato 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 SetFilePointer per spostare il puntatore al file.
CAtlFile::SetSize
Chiamare questo metodo per impostare le dimensioni del file.
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 SetFilePointer e SetEndOfFile per impostare le dimensioni del file. In caso di restituzione, il puntatore al file viene posizionato alla fine del file.
CAtlFile::UnlockRange
Chiamare questo metodo per sbloccare un'area del file.
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 UnlockFile per sbloccare un'area del file.
CAtlFile::Write
Chiamare questo metodo per scrivere dati nel file a partire dalla posizione indicata dal puntatore al file.
HRESULT Write(
LPCVOID pBuffer,
DWORD nBufSize,
LPOVERLAPPED pOverlapped,
LPOVERLAPPED_COMPLETION_ROUTINE pfnCompletionRoutine) throw();
HRESULT Write(
LPCVOID pBuffer,
DWORD nBufSize,
DWORD* pnBytesWritten = NULL) throw();
HRESULT Write(
LPCVOID pBuffer,
DWORD nBufSize,
LPOVERLAPPED pOverlapped) throw();
Parametri
pBuffer
Buffer contenente i dati da scrivere nel file.
nBufSize
Numero di byte da trasferire dal buffer.
pOverlapped
Struttura sovrapposta. Vedere lpOverlapped in WriteFile in Windows SDK.
pfnCompletionRoutine
Routine di completamento. Vedere lpCompletionRoutine in WriteFileEx in Windows SDK.
pnBytesWritten
Byte scritti.
Valore restituito
Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.
Osservazioni:
I primi tre moduli chiamano WriteFile, l'ultima chiama WriteFileEx per scrivere dati nel file. Usare CAtlFile::Seek per spostare il puntatore al file.
Vedi anche
Esempio di marquee
Cenni preliminari sulla classe
Classe CHandle