Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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
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.
Roep de Open lidfunctie aan voor het bestandsobject en geef een pad en machtigingsvlaggen op.
De retourwaarde voor
Openis niet-nul als het bestand is geopend of 0 als het opgegeven bestand niet kan worden geopend. DeOpenlidfunctie 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
CFileklasse, zodat ze worden gekwalificeerd met 'CFile::' zoals inCFile::modeRead. Gebruik deCFile::modeCreatevlag 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.