Freigeben über


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

Siehe auch

Referenz

CFile-Klasse

Hierarchiediagramm