Condividi tramite


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

Vedere anche

Riferimenti

Classe CFile

Grafico delle gerarchie