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
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.