Freigeben über


CAtlTemporaryFile-Klasse

Diese Klasse stellt Methoden zum Erstellen und Verwenden einer temporären Datei bereit.

Wichtig

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

Syntax

class CAtlTemporaryFile

Member

Öffentliche Konstruktoren

Name Beschreibung
CAtlTemporaryFile::CAtlTemporaryFile Der Konstruktor.
CAtlTemporaryFile::~CAtlTemporaryFile Der Destruktor.

Öffentliche Methoden

Name Beschreibung
CAtlTemporaryFile::Close Rufen Sie diese Methode auf, um eine temporäre Datei zu schließen und entweder deren Inhalt zu löschen oder unter dem angegebenen Dateinamen zu speichern.
CAtlTemporaryFile::Create Rufen Sie diese Methode auf, um eine temporäre Datei zu erstellen.
CAtlTemporaryFile::Flush Rufen Sie diese Methode auf, um zu erzwingen, dass alle im Dateipuffer verbleibenden Daten in die temporäre Datei geschrieben werden.
CAtlTemporaryFile::GetPosition Rufen Sie diese Methode auf, um die aktuelle Position des Dateizeigers abzurufen.
CAtlTemporaryFile::GetSize Rufen Sie diese Methode auf, um die Größe in Byte der temporären Datei abzurufen.
CAtlTemporaryFile::HandsOff Rufen Sie diese Methode auf, um die Zuordnung der Datei vom CAtlTemporaryFile Objekt zu trennen.
CAtlTemporaryFile::HandsOn Rufen Sie diese Methode auf, um eine vorhandene temporäre Datei zu öffnen und den Zeiger am Ende der Datei zu positionieren.
CAtlTemporaryFile::LockRange Rufen Sie diese Methode auf, um eine Region in der Datei zu sperren, um zu verhindern, dass andere Prozesse darauf zugreifen.
CAtlTemporaryFile::Read Rufen Sie diese Methode auf, um Daten aus der temporären Datei zu lesen, beginnend an der position, die vom Dateizeiger angegeben ist.
CAtlTemporaryFile::Seek Rufen Sie diese Methode auf, um den Dateizeiger der temporären Datei zu verschieben.
CAtlTemporaryFile::SetSize Rufen Sie diese Methode auf, um die Größe der temporären Datei festzulegen.
CAtlTemporaryFile::TempFileName Rufen Sie diese Methode auf, um den Namen der temporären Datei zurückzugeben.
CAtlTemporaryFile::UnlockRange Rufen Sie diese Methode auf, um einen Bereich der temporären Datei zu entsperren.
CAtlTemporaryFile::Write Rufen Sie diese Methode auf, um Daten in die temporäre Datei zu schreiben, beginnend an der position, die vom Dateizeiger angegeben ist.

Öffentliche Operatoren

Name Beschreibung
CAtlTemporaryFile::operator HANDLE Gibt ein Handle für die temporäre Datei zurück.

Hinweise

CAtlTemporaryFile erleichtert das Erstellen und Verwenden einer temporären Datei. Die Datei wird automatisch benannt, geöffnet, geschlossen und gelöscht. Wenn der Dateiinhalt nach dem Schließen der Datei erforderlich ist, können sie mit einem angegebenen Namen in einer neuen Datei gespeichert werden.

Anforderungen

Kopfzeile: atlfile.h

Beispiel

Siehe das Beispiel für CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::CAtlTemporaryFile

Der Konstruktor.

CAtlTemporaryFile() throw();

Hinweise

Eine Datei wird erst geöffnet, wenn ein Aufruf an CAtlTemporaryFile::Create erfolgt.

Beispiel

// Declare the temporary file object
CAtlTemporaryFile myTempFile;

// Create the temporary file, without caring where it
// will be created, but with both read and write access.
ATLVERIFY (myTempFile.Create(NULL, GENERIC_READ|GENERIC_WRITE) == S_OK);

// Create some data to write to the file

int nBuffer[100];
DWORD bytes_written = 0, bytes_read = 0;
int i;

for (i = 0; i < 100; i++)
   nBuffer[i] = i;

// Write some data to the file
myTempFile.Write(&nBuffer, sizeof(nBuffer), &bytes_written);

// Confirm it was written ok
ATLASSERT(bytes_written == sizeof(nBuffer));

// Flush the data to disk
ATLVERIFY(myTempFile.Flush() == S_OK);

// Reset the file pointer to the beginning of the file
ATLVERIFY(myTempFile.Seek(0, FILE_BEGIN) == S_OK);

// Read in the data
myTempFile.Read(&nBuffer, sizeof(nBuffer), bytes_read);

// Confirm it was read ok
ATLASSERT(bytes_read == sizeof(nBuffer));

// Close the file, making a copy of it at another location
ATLVERIFY(myTempFile.Close(_T("c:\\temp\\mydata.tmp")) == S_OK);

CAtlTemporaryFile::~CAtlTemporaryFile

Der Destruktor.

~CAtlTemporaryFile() throw();

Hinweise

Der Destruktor ruft CAtlTemporaryFile::Close auf.

CAtlTemporaryFile::Close

Rufen Sie diese Methode auf, um eine temporäre Datei zu schließen und entweder deren Inhalt zu löschen oder unter dem angegebenen Dateinamen zu speichern.

HRESULT Close(LPCTSTR szNewName = NULL) throw();

Parameter

szNewName
Der Name der neuen Datei, in der der Inhalt der temporären Datei gespeichert werden soll. Wenn dieses Argument NULL ist, werden die Inhalte der temporären Datei gelöscht.

Rückgabewert

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

Beispiel

Siehe das Beispiel für CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Create

Rufen Sie diese Methode auf, um eine temporäre Datei zu erstellen.

HRESULT Create(LPCTSTR pszDir = NULL, DWORD dwDesiredAccess = GENERIC_WRITE) throw();

Parameter

pszDir
Der Pfad für die temporäre Datei. Wenn dies NULL ist, wird GetTempPath aufgerufen, um einen Pfad zuzuweisen.

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

Rückgabewert

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

Beispiel

Siehe das Beispiel für CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Flush

Rufen Sie diese Methode auf, um zu erzwingen, dass alle im Dateipuffer verbleibenden Daten in die temporäre Datei geschrieben werden.

HRESULT Flush() throw();

Rückgabewert

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

Hinweise

Ähnlich wie CAtlTemporaryFile::HandsOff, außer dass die Datei nicht geschlossen ist.

Beispiel

Siehe das Beispiel für CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::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

Verwenden Sie CAtlTemporaryFile::Seek, um die Position des Dateizeigers zu ändern.

CAtlTemporaryFile::GetSize

Rufen Sie diese Methode auf, um die Größe in Byte der temporären 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.

CAtlTemporaryFile::HandsOff

Rufen Sie diese Methode auf, um die Zuordnung der Datei vom CAtlTemporaryFile Objekt zu trennen.

HRESULT HandsOff() throw();

Rückgabewert

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

Hinweise

HandsOff und CAtlTemporaryFile::HandsOn werden verwendet, um die Zuordnung der Datei vom Objekt zu trennen und bei Bedarf erneut anzuordnen. HandsOff erzwingt, dass alle im Dateipuffer verbleibenden Daten in die temporäre Datei geschrieben werden, und schließen Sie die Datei. Wenn Sie die Datei dauerhaft schließen und löschen möchten oder wenn Sie den Inhalt der Datei mit einem bestimmten Namen schließen und beibehalten möchten, verwenden Sie CAtlTemporaryFile::Close.

CAtlTemporaryFile::HandsOn

Rufen Sie diese Methode auf, um eine vorhandene temporäre Datei zu öffnen und den Zeiger am Ende der Datei zu positionieren.

HRESULT HandsOn() throw();

Rückgabewert

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

Hinweise

CAtlTemporaryFile::HandsOff und HandsOn werden verwendet, um die Zuordnung der Datei vom Objekt zu trennen und bei Bedarf erneut anzuordnen.

CAtlTemporaryFile::LockRange

Rufen Sie diese Methode auf, um eine Region in der temporären 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

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. Um eine Region erfolgreich zu entsperren, verwenden Sie CAtlTemporaryFile::UnlockRange, um sicherzustellen, dass der Bytebereich genau dem Bereich entspricht, der zuvor gesperrt wurde. LockRange keine angrenzenden Regionen zusammenführen; Wenn zwei gesperrte Bereiche nebeneinander liegen, müssen Sie die einzelnen Bereiche separat entsperren.

CAtlTemporaryFile::operator HANDLE

Gibt ein Handle für die temporäre Datei zurück.

operator HANDLE() throw();

CAtlTemporaryFile::Read

Rufen Sie diese Methode auf, um Daten aus der temporären Datei zu lesen, beginnend an der position, die vom Dateizeiger angegeben ist.

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    DWORD& nBytesRead) 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.

Rückgabewert

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

Hinweise

Ruft CAtlFile::Read auf. Rufen Sie CAtlTemporaryFile::Seek auf, um die Position des Dateizeigers zu ändern.

Beispiel

Siehe das Beispiel für CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Seek

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

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

Parameter

nOffset
Der Offset (in Byte) 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 CAtlFile::Seek auf. Rufen Sie zum Abrufen der aktuellen Dateizeigerposition CAtlTemporaryFile::GetPosition auf.

Beispiel

Siehe das Beispiel für CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::SetSize

Rufen Sie diese Methode auf, um die Größe der temporären 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 CAtlFile::SetSize auf. Beim Zurückgeben wird der Dateizeiger am Ende der Datei positioniert.

CAtlTemporaryFile::TempFileName

Rufen Sie diese Methode auf, um den Namen der temporären Datei zurückzugeben.

LPCTSTR TempFileName() throw();

Rückgabewert

Gibt den LPCTSTR-Wert zurück, der auf den Dateinamen zeigt.

Hinweise

Der Dateiname wird in CAtlTemporaryFile::CAtlTemporaryFile mit einem Aufruf der GetTempFileWindows SDK-Funktion generiert. Die Dateierweiterung ist immer "TFR" für die temporäre Datei.

CAtlTemporaryFile::UnlockRange

Rufen Sie diese Methode auf, um einen Bereich der temporären 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 CAtlFile::UnlockRange auf.

CAtlTemporaryFile::Write

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

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    DWORD* pnBytesWritten = NULL) 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.

pnBytesWritten
Die Anzahl der geschriebenen Byte

Rückgabewert

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

Hinweise

Ruft CAtlFile::Write auf.

Beispiel

Siehe das Beispiel für CAtlTemporaryFile::CAtlTemporaryFile.

Siehe auch

Klassenübersicht
CAtlFile-Klasse