Freigeben über


CAtlFile-Klasse

Diese Klasse bietet einen dünnen Wrapper um die Windows-Dateibehandlungs-API.

Wichtig

Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.

Syntax

class CAtlFile : public CHandle

Member

Öffentliche Konstruktoren

Name Beschreibung
CAtlFile::CAtlFile Der Konstruktor.

Öffentliche Methoden

Name Beschreibung
CAtlFile::Create Rufen Sie diese Methode auf, um eine Datei zu erstellen oder zu öffnen.
CAtlFile::Flush Rufen Sie diese Methode auf, um die Puffer für die Datei zu löschen und zu bewirken, dass alle gepufferten Daten in die Datei geschrieben werden.
CAtlFile::GetOverlappedResult Rufen Sie diese Methode auf, um die Ergebnisse eines überlappenden Vorgangs für die Datei abzurufen.
CAtlFile::GetPosition Rufen Sie diese Methode auf, um die aktuelle Dateizeigerposition aus der Datei abzurufen.
CAtlFile::GetSize Rufen Sie diese Methode auf, um die Größe in Byte der Datei abzurufen.
CAtlFile::LockRange Rufen Sie diese Methode auf, um eine Region in der Datei zu sperren, um zu verhindern, dass andere Prozesse darauf zugreifen.
CAtlFile::Read Rufen Sie diese Methode auf, um Daten aus einer Datei zu lesen, die an der position beginnt, die vom Dateizeiger angegeben ist.
CAtlFile::Seek Rufen Sie diese Methode auf, um den Dateizeiger der Datei zu verschieben.
CAtlFile::SetSize Rufen Sie diese Methode auf, um die Größe der Datei festzulegen.
CAtlFile::UnlockRange Rufen Sie diese Methode auf, um einen Bereich der Datei zu entsperren.
CAtlFile::Write Rufen Sie diese Methode auf, um Daten an die Datei zu schreiben, beginnend an der position, die vom Dateizeiger angegeben ist.

Geschützte Datenmember

Name Beschreibung
CAtlFile::m_pTM Zeiger auf CAtlTransactionManager Objekt

Hinweise

Verwenden Sie diese Klasse, wenn dateihandhabungsanforderungen relativ einfach sind, aber mehr Abstraktion als die bereitgestellte Windows-API erforderlich ist, ohne MFC-Abhängigkeiten einzugeben.

Vererbungshierarchie

CHandle

CAtlFile

Anforderungen

Kopfzeile: atlfile.h

CAtlFile::CAtlFile

Der Konstruktor.

CAtlFile() throw();
CAtlFile(CAtlTransactionManager* pTM = NULL) throw();
CAtlFile(CAtlFile& file) throw();
explicit CAtlFile(HANDLE hFile) throw();

Parameter

datei
Das Dateiobjekt.

hFile
Das Dateihandle.

pTM
Zeiger auf CAtlTransactionManager-Objekt

Hinweise

Der Kopierkonstruktor überträgt den Besitz des Dateihandle vom ursprünglichen CAtlFile Objekt an das neu erstellte Objekt.

CAtlFile::Create

Rufen Sie diese Methode auf, um eine Datei zu erstellen oder zu öffnen.

HRESULT Create(
    LPCTSTR szFilename,
    DWORD dwDesiredAccess,
    DWORD dwShareMode,
    DWORD dwCreationDisposition,
    DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL,
    LPSECURITY_ATTRIBUTES lpsa = NULL,
    HANDLE hTemplateFile = NULL) throw();

Parameter

szFilename
Der Dateiname.

dwDesiredAccess
Der gewünschte Zugriff. Siehe dwDesiredAccess in CreateFile im Windows SDK.

dwShareMode
Der Freigabemodus. Siehe dwShareMode in CreateFile.

dwCreationDisposition
Die Anordnung der Erstellung. Siehe dwCreationDisposition in CreateFile.

dwFlagsAndAttributes
Die Flags und Attribute. Siehe dwFlagsAndAttributes in CreateFile.

lpsa
Die Sicherheitsattribute. Siehe lpSecurityAttributes in CreateFile.

hTemplateFile
Die Vorlagendatei. Siehe hTemplateFile in CreateFile.

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

Ruft CreateFile auf, um die Datei zu erstellen oder zu öffnen.

CAtlFile::Flush

Rufen Sie diese Methode auf, um die Puffer für die Datei zu löschen und zu bewirken, dass alle gepufferten Daten in die Datei geschrieben werden.

HRESULT Flush() throw();

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

Ruft FlushFileBuffers auf, um gepufferte Daten in die Datei zu leeren.

CAtlFile::GetOverlappedResult

Rufen Sie diese Methode auf, um die Ergebnisse eines überlappenden Vorgangs für die Datei abzurufen.

HRESULT GetOverlappedResult(
    LPOVERLAPPED pOverlapped,
    DWORD& dwBytesTransferred,
    BOOL bWait) throw();

Parameter

POverlapped
Die überlappende Struktur. Siehe lpOverlapped in GetOverlappedResult im Windows SDK.

dwBytesTransferred
Die übertragenen Bytes. Siehe lpNumberOfBytesTransferred in GetOverlappedResult.

bWait
Die Warteoption. Siehe bWait in GetOverlappedResult.

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

Ruft GetOverlappedResult auf, um die Ergebnisse eines überlappenden Vorgangs für die Datei abzurufen.

CAtlFile::GetPosition

Rufen Sie diese Methode auf, um die aktuelle Position des Dateizeigers abzurufen.

HRESULT GetPosition(ULONGLONG& nPos) const throw();

Parameter

nPos
Die Position in Byte.

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

Ruft SetFilePointer auf, um die aktuelle Position des Dateizeigers abzurufen.

CAtlFile::GetSize

Rufen Sie diese Methode auf, um die Größe in Byte der Datei abzurufen.

HRESULT GetSize(ULONGLONG& nLen) const throw();

Parameter

nLen
Die Anzahl der Bytes in der Datei.

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

Ruft GetFileSize auf, um die Größe in Byte der Datei abzurufen.

CAtlFile::LockRange

Rufen Sie diese Methode auf, um eine Region in der Datei zu sperren, um zu verhindern, dass andere Prozesse darauf zugreifen.

HRESULT LockRange(ULONGLONG nPos, ULONGLONG nCount) throw();

Parameter

nPos
Die Position in der Datei, an der die Sperre beginnen soll.

nCount
Die Länge des zu sperrenden Bytebereichs.

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

Ruft LockFile auf, um eine Region in der Datei zu sperren. Das Sperren von Bytes in einer Datei verhindert den Zugriff auf diese Bytes durch andere Prozesse. Sie können mehrere Bereiche einer Datei sperren, aber keine überlappenden Bereiche sind zulässig. Wenn Sie einen Bereich entsperren, muss der Bytebereich mit CAtlFile::UnlockRange genau dem Bereich entsprechen, der zuvor gesperrt wurde. LockRange keine angrenzenden Regionen zusammenführen; Wenn zwei gesperrte Bereiche nebeneinander liegen, müssen Sie die einzelnen Bereiche separat entsperren.

CAtlFile::m_pTM

Zeiger auf ein CAtlTransactionManager Objekt.

CAtlTransactionManager* m_pTM;

Hinweise

CAtlFile::Read

Rufen Sie diese Methode auf, um Daten aus einer Datei zu lesen, die an der position beginnt, die vom Dateizeiger angegeben ist.

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    DWORD& nBytesRead) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped,
    LPOVERLAPPED_COMPLETION_ROUTINE pfnCompletionRoutine) throw();

Parameter

pBuffer
Zeigen Sie auf den Puffer, der die aus der Datei gelesenen Daten empfängt.

nBufSize
Die Puffergröße in Byte.

nBytesRead
Die Anzahl der gelesenen Bytes.

POverlapped
Die überlappende Struktur. Siehe lpOverlapped in ReadFile im Windows SDK.

pfnCompletionRoutine
Die Abschlussroutine. Siehe lpCompletionRoutine in ReadFileEx im Windows SDK.

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

Die ersten drei Formulare rufen ReadFile auf, der letzte ReadFileEx, um Daten aus der Datei zu lesen. Verwenden Sie CAtlFile::Seek , um den Dateizeiger zu verschieben.

CAtlFile::Seek

Rufen Sie diese Methode auf, um den Dateizeiger der Datei zu verschieben.

HRESULT Seek(
    LONGLONG nOffset,
    DWORD dwFrom = FILE_CURRENT) throw();

Parameter

nOffset
Der Offset vom Startpunkt, der von dwFrom angegeben wird.

dwFrom
Der Ausgangspunkt (FILE_BEGIN, FILE_CURRENT oder FILE_END).

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

Ruft SetFilePointer auf, um den Dateizeiger zu verschieben.

CAtlFile::SetSize

Rufen Sie diese Methode auf, um die Größe der Datei festzulegen.

HRESULT SetSize(ULONGLONG nNewLen) throw();

Parameter

nNewLen
Die neue Länge der Datei in Byte.

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

Ruft SetFilePointer und SetEndOfFile auf, um die Größe der Datei festzulegen. Beim Zurückgeben wird der Dateizeiger am Ende der Datei positioniert.

CAtlFile::UnlockRange

Rufen Sie diese Methode auf, um einen Bereich der Datei zu entsperren.

HRESULT UnlockRange(ULONGLONG nPos, ULONGLONG nCount) throw();

Parameter

nPos
Die Position in der Datei, an der die Entsperrung beginnen soll.

nCount
Die Länge des zu entsperrenden Bytebereichs.

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

Ruft UnlockFile auf, um einen Bereich der Datei zu entsperren.

CAtlFile::Write

Rufen Sie diese Methode auf, um Daten an die Datei zu schreiben, beginnend an der position, die vom Dateizeiger angegeben ist.

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped,
    LPOVERLAPPED_COMPLETION_ROUTINE pfnCompletionRoutine) throw();

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    DWORD* pnBytesWritten = NULL) throw();

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped) throw();

Parameter

pBuffer
Der Puffer, der die Daten enthält, die in die Datei geschrieben werden sollen.

nBufSize
Die Anzahl der Bytes, die aus dem Puffer übertragen werden sollen.

POverlapped
Die überlappende Struktur. Siehe lpOverlapped in WriteFile im Windows SDK.

pfnCompletionRoutine
Die Abschlussroutine. Siehe lpCompletionRoutine in WriteFileEx im Windows SDK.

pnBytesWritten
Die geschriebenen Bytes.

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

Die ersten drei Formulare rufen WriteFile auf, die letzten aufruft WriteFileEx, um Daten in die Datei zu schreiben. Verwenden Sie CAtlFile::Seek , um den Dateizeiger zu verschieben.

Siehe auch

Beispiel für Festrahmen
Klassenübersicht
CHandle-Klasse