Öffnen von Dateien
In MFC ist die am häufigsten verwendete Methode zum Öffnen einer Datei ein zweistufiger Prozess.
So öffnen Sie eine Datei
Erstellen Sie das Dateiobjekt, ohne einen Pfad oder eine Berechtigungskennzeichnung anzugeben.
Normalerweise erstellen Sie ein Dateiobjekt, indem Sie eine CFile-Variable im Stapelframe deklarieren.
Rufen Sie die Open-Memberfunktion für das Dateiobjekt auf, und geben Sie einen Pfad und Berechtigungskennzeichnungen an.
Der Rückgabewert
Open
ist nicht null, wenn die Datei erfolgreich geöffnet wurde, oder 0, wenn die angegebene Datei nicht geöffnet werden konnte. DieOpen
Memberfunktion wird wie folgt prototypiert:virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL );
Die geöffneten Flags geben an, welche Berechtigungen, z. B. schreibgeschützt, für die Datei verwendet werden sollen. Die möglichen Flagwerte werden als aufgezählte Konstanten innerhalb der
CFile
Klasse definiert, sodass sie mit "CFile::
" wie inCFile::modeRead
qualifiziert sind. Verwenden Sie dasCFile::modeCreate
Flag, wenn Sie die Datei erstellen möchten.
Das folgende Beispiel zeigt, wie Sie eine neue Datei mit Lese-/Schreibberechtigung erstellen (ersetzen Sie alle vorherigen Dateien durch denselben Pfad):
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 );
}
Hinweis
In diesem Beispiel wird eine Datei erstellt und geöffnet. Wenn Probleme auftreten, kann der Open
Aufruf ein CFileException
Objekt in seinem letzten Parameter zurückgeben, wie hier gezeigt. Das TRACE-Makro druckt sowohl den Dateinamen als auch einen Code, der den Grund für den Fehler angibt. Sie können die AfxThrowFileException
Funktion aufrufen, wenn Sie detailliertere Fehlerberichte benötigen.