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