CFile::CFile
Erstellt und initialisiert ein CFile-Objekt.
CFile( ); CFile( CAtlTransactionManager* pTM ); CFile( HANDLE hFile ); CFile( LPCTSTR lpszFileName, UINT nOpenFlags ); CFile( LPCTSTR lpszFileName, UINT nOpenFlags, CAtlTransactionManager* pTM );
Parameter
hFile
Handle einer Datei zum Anhängen an das CFile-Objekt.lpszFileName
Relativer oder vollständiger Pfad einer Datei zum Anhängen an das CFile-Objekt.nOpenFlags
Bitweise Kombination (OR) der Dateizugriffsoptionen für die angegebene Datei. Mögliche Optionen finden Sie im Abschnitt "Hinweise".pTM
Zeiger auf CAtlTransactionManager-Objekt
Hinweise
Die folgenden fünf Tabellen enthalten die möglichen Optionen für die nOpenFlags-Parameter.
Wählen Sie eine der folgenden Dateizugriffsmodus-Optionen. Der standardmäßige Dateizugriffsmodus ist CFile::modeRead, wobei es sich um einen schreibgeschützten Modus handelt.
Wert |
Beschreibung |
---|---|
CFile::modeRead |
Fordert nur Lesezugriff an. |
CFile::modeWrite |
Fordert nur Schreibzugriff an. |
CFile::modeReadWrite |
Fordert Lese- und Schreibzugriff an. |
Wählen Sie eine der folgenden Zeichenmodus-Optionen.
Wert |
Beschreibung |
---|---|
CFile::typeBinary |
Legt den Binärmodus fest (nur in abgeleiteten Klassen verwendet). |
CFile::typeText |
Legt den Textmodus mit spezieller Verarbeitung für Wagenrücklauf-Zeilenvorschub-Paare fest (nur in abgeleiteten Klassen verwendet). |
CFile::typeUnicode |
Legt den Unicode-Modus fest (nur in abgeleiteten Klassen verwendet). Text wird im Unicode-Format in die Datei geschrieben, wenn die Anwendung in einer Unicode-Konfiguration erstellt wurde. Es wird keine BOM in die Datei geschrieben. |
Wählen Sie eine der folgenden Dateifreigabemodus-Optionen. Der standardmäßige Dateifreigabemodus ist CFile::shareExclusive, wobei es sich um einen exklusiven Modus handelt.
Wert |
Beschreibung |
---|---|
CFile::shareDenyNone |
Keine Freigabebeschränkungen. |
CFile::shareDenyRead |
Verweigert allen anderen Lesezugriff. |
CFile::shareDenyWrite |
Verweigert allen anderen Schreibzugriff. |
CFile::shareExclusive |
Verweigert allen anderen Lese- und Schreibzugriff. |
Wählen Sie die erste oder beide Dateierstellungsmodus-Optionen. Der standardmäßige Dateierstellungsmodus ist CFile::modeNoTruncate, wobei es sich um "offen vorhanden" handelt.
Wert |
Beschreibung |
---|---|
CFile::modeCreate |
Erstellt eine neue Datei, wenn keine Datei existiert. Wenn die Datei bereits vorhanden ist, wird CFileException ausgelöst. |
CFile::modeNoTruncate |
Erstellt eine neue Datei, wenn keine Datei existiert. Wenn die Datei bereits vorhanden ist, wird sie anderenfalls an das CFile-Objekt angehängt. |
Wählen Sie die folgenden Datei-Cache-Optionen wie beschrieben. Standardmäßig verwendet das System ein allgemeines Cache-Schema, das nicht als Option verfügbar ist.
Wert |
Beschreibung |
---|---|
CFile::osNoBuffer |
Das System verwendet keinen Zwischen-Cache für die Datei. Diese Option bricht die beiden folgenden Optionen ab. |
CFile::osRandomAccess |
Der Datei-Cache wird für wahlfreien Zugriff optimiert. Verwenden Sie nicht diese Option und die sequenzielle Scan-Option. |
CFile::osSequentialScan |
Der Datei-Cache wird für sequenziellen Zugriff optimiert. Verwenden Sie nicht diese Option und die Option für wahlfreien Zugriff. |
CFile::osWriteThrough |
Schreibvorgänge werde ohne Verzögerung ausgeführt. |
Wählen Sie die folgende Sicherheitsoption, um zu verhindern, dass der Dateihandle übergeben wird. Standardmäßig können alle neuen untergeordneten Prozesse den Dateihandle verwenden.
Wert |
Beschreibung |
---|---|
CFile::modeNoInherit |
Verhindert, dass untergeordnete Prozesse den Dateihandle verwenden. |
Der Standardkonstruktor initialisiert Member, hängt jedoch keine Datei an das CFile-Objekt an. Nach der Verwendung dieses Konstruktor, verwenden Sie die CFile::Open-Methode, um eine Datei zu öffnen und an das CFile-Objekt anzuhängen.
Der Konstruktor mit einem Parameter initialisiert Member und hängt eine vorhandene Datei an das CFile-Objekt an.
Der Konstruktor mit zwei Parametern initialisiert Member und versucht, die angegebene Datei zu öffnen. Wenn der Konstruktor die angegebene Datei erfolgreich öffnet, wird die Datei an das CFile-Objekt angehängt; anderenfalls löst der Konstruktor einen Zeiger auf ein CInvalidArgException-Objekt aus. Weitere Informationen zum Behandeln von Ausnahmen finden Sie unter Ausnahmen.
Wenn ein CFile-Objekt eine angegebene Datei erfolgreich öffnet, wird diese Datei automatisch geschlossen, wenn das CFile-Objekt zerstört wird; anderenfalls müssen Sie die Datei explizit schließen, wenn sie nicht mehr an das CFile-Objekt angehängt ist.
Beispiel
Der folgende Code veranschaulicht die Verwendung einer 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();
Anforderungen
Header: afx.h