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.