Apertura di file
In MFC, il modo più comune per aprire un file è un processo a due fasi.
Per aprire un file
Creare l'oggetto file senza specificare un percorso o flag di autorizzazione.
In genere si crea un oggetto file dichiarando una variabile CFile nel frame dello stack.
Chiamare la funzione membro Open per l'oggetto file, specificando un percorso e i flag di autorizzazione.
Il valore restituito per
Open
sarà diverso da zero se il file è stato aperto correttamente o 0 se non è stato possibile aprire il file specificato. LaOpen
funzione membro viene prototipo come indicato di seguito:virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL );
I flag aperti specificano le autorizzazioni, ad esempio di sola lettura, per il file. I valori dei flag possibili vengono definiti come costanti enumerate all'interno della
CFile
classe , pertanto sono qualificati con "CFile::
" come inCFile::modeRead
. Usare ilCFile::modeCreate
flag se si desidera creare il file.
L'esempio seguente illustra come creare un nuovo file con autorizzazione di lettura/scrittura (sostituendo qualsiasi file precedente con lo stesso percorso):
TCHAR* pszFileName = _T("c:\\test\\myfile.dat");
CFile myFile;
CFileException fileException;
if ( !myFile.Open( pszFileName, CFile::modeCreate |
CFile::modeReadWrite, &fileException ) )
{
TRACE( _T("Can't open file %s, error = %u\n"),
pszFileName, fileException.m_cause );
}
Nota
In questo esempio viene creato e aperto un file. In caso di problemi, la Open
chiamata può restituire un CFileException
oggetto nell'ultimo parametro, come illustrato di seguito. La macro TRACE stampa sia il nome del file che un codice che indica il motivo dell'errore. È possibile chiamare la AfxThrowFileException
funzione se è necessaria una segnalazione degli errori più dettagliata.