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, zu CFile des Objekts anzufügen.

  • lpszFileName
    Verwandter oder vollständiger Pfad einer Datei, zu CFile des Objekts anzufügen.

  • nOpenFlags
    Kombination (Bitweises OR) von Dateizugriffsoptionen für die angegebene Datei.Weitere Informationen finden Sie in den Hinweisen auf mögliche Optionen.

  • pTM
    Zeiger auf CAtlTransactionManager-Objekt

Hinweise

Die folgenden fünf Tabellen sind die möglichen Optionen für den nOpenFlags-Parameter auf.

Wählen Sie nur eine der folgenden Dateizugriffszugriffsartoptionen aus.Der Standarddateizugriffsmodus ist CFile::modeRead, der schreibgeschützt ist.

Wert

Description

CFile::modeRead

Fordert nur Lesezugriff.

CFile::modeWrite

Fordert nur Schreibzugriff.

CFile::modeReadWrite

Fordert Lese- und Schreibzugriff.

Wählen Sie eine der folgenden Zeichenmodusoptionen aus.

Wert

Description

CFile::typeBinary

Legt den binären Modus fest (wird nur in abgeleiteten Klassen).

CFile::typeText

Legt Textmodus mit dem speziellen Verarbeitung für die Wagenrücklauf/Zeilenvorschub-Paare fest (wird nur in abgeleiteten Klassen).

CFile::typeUnicode

Legt den Unicode-Modus fest (wird nur in abgeleiteten Klassen).Text wird in der Datei im Unicode-Format geschrieben, wenn die Anwendung eine Unicode-Konfiguration integriert ist.Kein BOM wird in der Datei geschrieben.

Wählen Sie nur eine der folgenden Dateifreigabemodusoptionen aus.Der Standarddateifreigabenmodus ist CFile::shareExclusive, der angewendet wird.

Wert

Description

CFile::shareDenyNone

Keine Freigabeneinschränkungen.

CFile::shareDenyRead

Verweigert Lesezugriff auf alle anderen.

CFile::shareDenyWrite

Verweigert Schreibzugriff auf alle anderen.

CFile::shareExclusive

Verweigert Lese- und Schreibzugriff auf alle anderen.

Wählen Sie das erste oder beide, der folgenden Dateierstellungs-Modusoptionen aus.Der Standardwert Erstellungsmodus ist CFile::modeNoTruncate, der geöffneten vorhandenen ist.

Wert

Description

CFile::modeCreate

Erstellt eine neue Datei, wenn keine Datei vorhanden ist; andernfalls wenn die Datei bereits vorhanden ist, wird sie in den CFile-Objekt angefügt und wird auf 0 Länge abgeschnitten.

CFile::modeNoTruncate

Erstellt eine neue Datei, wenn keine Datei vorhanden ist; andernfalls wenn die Datei bereits vorhanden ist, wird sie in den CFile-Objekt angefügt.

Wählen Sie die folgenden Dateizwischenspeichernoptionen aus, wie beschrieben.Standardmäßig verwendet das System ein universelles Zwischenspeichernschema, die nicht als Option verfügbar ist.

Wert

Description

CFile::osNoBuffer

Das System verwendet keinen Zwischencachen für die Datei.Diese Option bricht die nächsten 2 Optionen ab.

CFile::osRandomAccess

Der Dateicache wird für wahlfreien Zugriff optimiert.Verwenden Sie diese Option nicht und die sequenzielle Überprüfungsoption.

CFile::osSequentialScan

Der Dateicache wird für den sequenziellen Zugriff optimiert.Verwenden Sie diese Option nicht und die direkte Option.

CFile::osWriteThrough

Schreibvorgänge werden sofort ausgeführt.

Wählen Sie die folgenden Sicherheitsoption aus, zu verhindern, dass das Dateihandle geerbt.Standardmäßig können alle neuen untergeordneten Prozesse das Dateihandle verwenden.

Wert

Description

CFile::modeNoInherit

Verhindert alle untergeordneten Prozesse an der Anwendung des Dateihandles.

Der Standardkonstruktor initialisiert, Member jedoch wird eine Datei nicht zum CFile-Objekt bei.Nach Verwendung dieses Konstruktors, verwenden Sie die CFile::Open-Methode, um eine Datei zu öffnen und sie in CFile-Objekt anzufügen.

Der Konstruktor mit einem Parameter initialisiert Member und eine vorhandene Datei zum CFile-Objekt bei.

Der Konstruktor mit zwei Parametern Member initialisiert und versucht, die angegebene Datei zu öffnen.Wenn dieser Konstruktor erfolgreich die angegebene Datei wird, wird die Datei im Objekt angefügt, CFile Andernfalls löst dieses Konstruktors einen Zeiger auf einen CInvalidArgException-Objekt.Weitere Informationen darüber, wie Ausnahmen, finden Sie unter Ausnahmen behandelt.

Wenn ein CFile-Objekt erfolgreich eine angegebene Datei wird, schließt die diese Datei automatisch, wenn das Objekt zerstört wird, CFile Andernfalls müssen Sie die Datei explizit schließen, sobald sie nicht mehr im CFile-Objekt angefügt ist.

Beispiel

Alle drei Konstruktoren werden im folgenden Code veranschaulicht.

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

Die C-Datei Klasse

Hierarchien-Diagramm