CFile::CFile
Costruisce e inizializza un oggetto CFile.
CFile( ); CFile( CAtlTransactionManager* pTM ); CFile( HANDLE hFile ); CFile( LPCTSTR lpszFileName, UINT nOpenFlags ); CFile( LPCTSTR lpszFileName, UINT nOpenFlags, CAtlTransactionManager* pTM );
Parametri
hFile
Handle di un file da aggiungere all'oggetto CFile.lpszFileName
Percorso completo o relativo di un file da aggiungere all'oggetto CFile.nOpenFlags
Combinazione bit per bit (OR) di opzioni di accesso per il file specificato. Per le possibili opzioni, vedere la sezione Note.pTM
Puntatore all'oggetto CAtlTransactionManager
Note
Le cinque tabelle seguenti contengono un elenco delle possibili opzioni per il parametro nOpenFlags.
Scegliere una sola delle seguenti opzioni relative alla modalità di accesso al file. La modalità predefinita è CFile::modeRead, che prevede la sola lettura.
Valore |
Descrizione |
---|---|
CFile::modeRead |
Richiede l'accesso in sola lettura. |
CFile::modeWrite |
Richiede l'accesso in sola scrittura. |
CFile::modeReadWrite |
Richiede l'accesso in lettura e scrittura. |
Scegliere una delle opzioni seguenti relative alla modalità carattere.
Valore |
Descrizione |
---|---|
CFile::typeBinary |
Imposta la modalità binaria (solo per le classi derivate). |
CFile::typeText |
Imposta la modalità testo con elaborazione speciale per le combinazioni ritorno a capo-avanzamento riga (solo per le classi derivate). |
CFile::typeUnicode |
Imposta la modalità Unicode (solo per le classi derivate). Il testo viene scritto nel file in formato Unicode quando l'applicazione viene compilata in una configurazione Unicode. Nessun BOM viene scritto nel file. |
Scegliere una sola delle seguenti opzioni relative alla modalità di condivisione del file. La modalità di condivisione file predefinita è CFile::shareExclusive, che è esclusiva.
Valore |
Descrizione |
---|---|
CFile::shareDenyNone |
Nessuna restrizione alla condivisione. |
CFile::shareDenyRead |
Nega l'accesso in lettura a tutti gli altri utenti. |
CFile::shareDenyWrite |
Nega l'accesso in scrittura a tutti gli altri utenti. |
CFile::shareExclusive |
Nega l'accesso in lettura e scrittura a tutti gli altri utenti. |
Scegliere la prima delle seguenti opzioni relative alla modalità di creazione del file oppure entrambe. La modalità di creazione predefinita è CFile::modeNoTruncate, che prevede l'apertura di un file esistente.
Valore |
Descrizione |
---|---|
CFile::modeCreate |
Crea un nuovo file se non ne esiste uno, in caso contrario viene generata l'eccezione CFileException. |
CFile::modeNoTruncate |
Crea un nuovo file se non ne esiste uno, in caso contrario il file viene aggiunto all'oggetto CFile. |
Scegliere le opzioni di memorizzazione nella cache del file come descritto. Per impostazione predefinita, il sistema usa uno schema di memorizzazione nella cache generico, non disponibile come opzione.
Valore |
Descrizione |
---|---|
CFile::osNoBuffer |
Il sistema non usa una cache intermedia per il file. Questa opzione annulla le due opzioni seguenti. |
CFile::osRandomAccess |
La cache dei file viene ottimizzata per l'accesso casuale. Non usare questa opzione e l'opzione per la scansione sequenziale. |
CFile::osSequentialScan |
La cache dei file viene ottimizzata per l'accesso sequenziale. Non usare questa opzione e l'opzione per l'accesso casuale. |
CFile::osWriteThrough |
Le operazioni di scrittura vengono eseguite senza ritardo. |
Scegliere l'opzione di sicurezza seguente per evitare che l'handle di file venga ereditato. Per impostazione predefinita, l'handle di file può essere usato da tutti i nuovi processi figlio.
Valore |
Descrizione |
---|---|
CFile::modeNoInherit |
Evita l'uso dell'handle di file da parte di qualsiasi processo figlio. |
Il costruttore predefinito inizializza i membri, ma non aggiunge un file all'oggetto CFile. Dopo aver usato questo costruttore, usare il metodo CFile::Open per aprire un file e aggiungerlo all'oggetto CFile.
Il costruttore con un parametro inizializza i membri e aggiunge un file esistente all'oggetto CFile.
Il costruttore con due parametri inizializza i membri e prova ad aprire il file specificato. Se il costruttore apre correttamente il file specificato, il file viene aggiunto all'oggetto CFile. In caso contrario, questo costruttore genera un puntatore a un oggetto CInvalidArgException. Per altre informazioni su come gestire le eccezioni, vedere Eccezioni.
Se un oggetto CFile apre correttamente un file specificato, il file verrà chiuso automaticamente quando l'oggetto CFile viene eliminato. In alternativa, è necessario chiudere esplicitamente il file quando non è più allegato all'oggetto CFile.
Esempio
L'esempio di codice illustra come usare un oggetto CFile.
HANDLE hFile = CreateFile(_T("CFile_File.dat"),
GENERIC_WRITE, FILE_SHARE_READ,
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
AfxMessageBox(_T("Couldn't create the file!"));
}
else
{
// Attach a CFile object to the handle we have.
CFile myFile(hFile);
static const TCHAR sz[] = _T("I love CFile!");
// write string
myFile.Write(sz, sizeof(sz));
// We can call Close() explicitly, but the destructor would have
// also closed the file for us. Note that there's no need to
// call the CloseHandle() on the handle returned by the API because
// MFC will close it for us.
myFile.Close();
Requisiti
Intestazione: afx.h