Bestanden openen

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

In MFC is de meest voorkomende manier om een bestand te openen een proces in twee fasen.

Een bestand openen

  1. Maak het bestandsobject zonder een pad of machtigingsvlagmen op te geven.

    Meestal maakt u een bestandsobject door een CFile-variabele in het stackframe te declareren.

  2. Roep de Open lidfunctie aan voor het bestandsobject en geef een pad en machtigingsvlaggen op.

    De retourwaarde voor Open is niet-nul als het bestand is geopend of 0 als het opgegeven bestand niet kan worden geopend. De Open lidfunctie wordt als volgt geprototypeerd:

    virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL );

    De geopende vlaggen geven aan welke machtigingen, zoals alleen-lezen, voor het bestand moeten worden gebruikt. De mogelijke vlagwaarden worden gedefinieerd als opgesomde constanten binnen de CFile klasse, zodat ze worden gekwalificeerd met 'CFile::' zoals in CFile::modeRead. Gebruik de CFile::modeCreate vlag als u het bestand wilt maken.

In het volgende voorbeeld ziet u hoe u een nieuw bestand maakt met lees-/schrijfmachtigingen (waarbij een eerder bestand wordt vervangen door hetzelfde pad):

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 );
}

Opmerking

In dit voorbeeld wordt een bestand gemaakt en geopend. Als er problemen zijn, kan de Open aanroep een object in zijn laatste CFileException parameter retourneren, zoals hier te zien is. Met de MACRO TRACE worden zowel de bestandsnaam als een code afgedrukt die de reden voor de fout aangeeft. U kunt de AfxThrowFileException functie aanroepen als u gedetailleerdere foutenrapportage nodig hebt.

Zie ook

CFile-klasse
CFile::Openen
bestanden