Dela via


CAtlTemporaryFile-klass

Den här klassen innehåller metoder för att skapa och använda en tillfällig fil.

Viktigt!

Den här klassen och dess medlemmar kan inte användas i program som körs i Windows Runtime.

Syntax

class CAtlTemporaryFile

Medlemmar

Offentliga konstruktorer

Namn Beskrivning
CAtlTemporaryFile::CAtlTemporaryFile Konstruktorn.
CAtlTemporaryFile::~CAtlTemporaryFile Destructor.

Offentliga metoder

Namn Beskrivning
CAtlTemporaryFile::Close Anropa den här metoden för att stänga en temporär fil och antingen ta bort dess innehåll eller lagra dem under det angivna filnamnet.
CAtlTemporaryFile::Skapa Anropa den här metoden för att skapa en tillfällig fil.
CAtlTemporaryFile::Flush Anropa den här metoden för att tvinga alla data som finns kvar i filbufferten att skrivas till den tillfälliga filen.
CAtlTemporaryFile::GetPosition Anropa den här metoden för att hämta den aktuella filpekarpositionen.
CAtlTemporaryFile::GetSize Anropa den här metoden för att hämta storleken i byte för den temporära filen.
CAtlTemporaryFile::HandsOff Anropa den här metoden för att koppla bort filen från objektet CAtlTemporaryFile .
CAtlTemporaryFile::HandsOn Anropa den här metoden för att öppna en befintlig temporär fil och placera pekaren i slutet av filen.
CAtlTemporaryFile::LockRange Anropa den här metoden för att låsa en region i filen för att förhindra att andra processer kommer åt den.
CAtlTemporaryFile::Read Anropa den här metoden för att läsa data från den temporära filen med början vid den position som anges av filpekaren.
CAtlTemporaryFile::Seek Anropa den här metoden för att flytta filpekaren för den temporära filen.
CAtlTemporaryFile::SetSize Anropa den här metoden för att ange storleken på den temporära filen.
CAtlTemporaryFile::TempFileName Anropa den här metoden för att returnera namnet på den temporära filen.
CAtlTemporaryFile::UnlockRange Anropa den här metoden för att låsa upp en region för den tillfälliga filen.
CAtlTemporaryFile::Write Anropa den här metoden för att skriva data till den temporära filen som börjar vid den position som anges av filpekaren.

Offentliga operatörer

Namn Beskrivning
CAtlTemporaryFile::operator HANDLE Returnerar ett handtag till den tillfälliga filen.

Anmärkningar

CAtlTemporaryFile gör det enkelt att skapa och använda en tillfällig fil. Filen namnges, öppnas, stängs och tas bort automatiskt. Om filinnehållet krävs när filen har stängts kan de sparas i en ny fil med ett angivet namn.

Kravspecifikation

Rubrik: atlfile.h

Exempel

Se exemplet för CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::CAtlTemporaryFile

Konstruktorn.

CAtlTemporaryFile() throw();

Anmärkningar

En fil öppnas inte förrän ett anrop görs till CAtlTemporaryFile::Create.

Exempel

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

Destructor.

~CAtlTemporaryFile() throw();

Anmärkningar

Destructor anropar CAtlTemporaryFile::Close.

CAtlTemporaryFile::Close

Anropa den här metoden för att stänga en temporär fil och antingen ta bort dess innehåll eller lagra dem under det angivna filnamnet.

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

Parameterar

szNewName
Namnet på den nya filen som innehållet i den temporära filen ska lagras i. Om det här argumentet är NULL tas innehållet i den temporära filen bort.

Returvärde

Returnerar S_OK vid lyckat fel eller ett fel med HRESULT vid fel.

Exempel

Se exemplet för CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Skapa

Anropa den här metoden för att skapa en tillfällig fil.

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

Parameterar

pszDir
Sökvägen till den tillfälliga filen. Om detta är NULL anropas GetTempPath för att tilldela en sökväg.

dwDesiredAccess
Önskad åtkomst. Se dwDesiredAccess i CreateFile i Windows SDK.

Returvärde

Returnerar S_OK vid lyckat fel eller ett fel med HRESULT vid fel.

Exempel

Se exemplet för CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Flush

Anropa den här metoden för att tvinga alla data som finns kvar i filbufferten att skrivas till den tillfälliga filen.

HRESULT Flush() throw();

Returvärde

Returnerar S_OK vid lyckat fel eller ett fel med HRESULT vid fel.

Anmärkningar

Liknar CAtlTemporaryFile::HandsOff, förutom att filen inte är stängd.

Exempel

Se exemplet för CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::GetPosition

Anropa den här metoden för att hämta den aktuella filpekarpositionen.

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

Parameterar

nPos
Positionen i byte.

Returvärde

Returnerar S_OK vid lyckat fel eller ett fel med HRESULT vid fel.

Anmärkningar

Om du vill ändra filpekarens position använder du CAtlTemporaryFile::Seek.

CAtlTemporaryFile::GetSize

Anropa den här metoden för att hämta storleken i byte för den temporära filen.

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

Parameterar

nLen
Antalet byte i filen.

Returvärde

Returnerar S_OK vid lyckat fel eller ett fel med HRESULT vid fel.

CAtlTemporaryFile::HandsOff

Anropa den här metoden för att koppla bort filen från objektet CAtlTemporaryFile .

HRESULT HandsOff() throw();

Returvärde

Returnerar S_OK vid lyckat fel eller ett fel med HRESULT vid fel.

Anmärkningar

HandsOff och CAtlTemporaryFile::HandsOn används för att koppla bort filen från objektet och koppla den igen om det behövs. HandsOff tvingar alla data som finns kvar i filbufferten att skrivas till den temporära filen och stänger sedan filen. Om du vill stänga och ta bort filen permanent, eller om du vill stänga och behålla innehållet i filen med ett angivet namn, använder du CAtlTemporaryFile::Stäng.

CAtlTemporaryFile::HandsOn

Anropa den här metoden för att öppna en befintlig temporär fil och placera pekaren i slutet av filen.

HRESULT HandsOn() throw();

Returvärde

Returnerar S_OK vid lyckat fel eller ett fel med HRESULT vid fel.

Anmärkningar

CAtlTemporaryFile::HandsOff och HandsOn används för att koppla bort filen från objektet och koppla om den om det behövs.

CAtlTemporaryFile::LockRange

Anropa den här metoden för att låsa en region i den tillfälliga filen för att förhindra att andra processer kommer åt den.

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

Parameterar

nPos
Positionen i filen där låset ska börja.

nCount
Längden på byteintervallet som ska låsas.

Returvärde

Returnerar S_OK vid lyckat fel eller ett fel med HRESULT vid fel.

Anmärkningar

Om byte låses i en fil förhindras åtkomst till dessa byte av andra processer. Du kan låsa fler än en region i en fil, men inga överlappande regioner tillåts. Om du vill låsa upp en region använder du CAtlTemporaryFile::UnlockRange, vilket säkerställer att byteintervallet motsvarar exakt den region som tidigare var låst. LockRange sammanfogar inte angränsande regioner. Om två låsta regioner ligger intill varandra måste du låsa upp var och en separat.

CAtlTemporaryFile::operator HANDLE

Returnerar ett handtag till den tillfälliga filen.

operator HANDLE() throw();

CAtlTemporaryFile::Read

Anropa den här metoden för att läsa data från den temporära filen med början vid den position som anges av filpekaren.

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

Parameterar

pBuffer
Pekare till bufferten som tar emot data som lästs från filen.

nBufSize
Buffertstorleken i byte.

nBytesRead
Antal lästa byte.

Returvärde

Returnerar S_OK vid lyckat fel eller ett fel med HRESULT vid fel.

Anmärkningar

Anropar CAtlFile::Read. Om du vill ändra filpekarens position anropar du CAtlTemporaryFile::Seek.

Exempel

Se exemplet för CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Seek

Anropa den här metoden för att flytta filpekaren för den temporära filen.

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

Parameterar

nOffset
Förskjutningen, i byte, från den startpunkt som anges av dwFrom.

dwFrom
Startpunkten (FILE_BEGIN, FILE_CURRENT eller FILE_END).

Returvärde

Returnerar S_OK vid lyckat fel eller ett fel med HRESULT vid fel.

Anmärkningar

Anropar CAtlFile::Seek. Om du vill hämta den aktuella filpekarpositionen anropar du CAtlTemporaryFile::GetPosition.

Exempel

Se exemplet för CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::SetSize

Anropa den här metoden för att ange storleken på den temporära filen.

HRESULT SetSize(ULONGLONG nNewLen) throw();

Parameterar

nNewLen
Den nya längden på filen i byte.

Returvärde

Returnerar S_OK vid lyckat fel eller ett fel med HRESULT vid fel.

Anmärkningar

Anropar CAtlFile::SetSize. Vid retur placeras filpekaren i slutet av filen.

CAtlTemporaryFile::TempFileName

Anropa den här metoden för att returnera namnet på den temporära filen.

LPCTSTR TempFileName() throw();

Returvärde

Returnerar LPCTSTR som pekar på filnamnet.

Anmärkningar

Filnamnet genereras i CAtlTemporaryFile::CAtlTemporaryFile med ett anrop till funktionen GetTempFile Windows SDK. Filnamnstillägget är alltid "TFR" för den temporära filen.

CAtlTemporaryFile::UnlockRange

Anropa den här metoden för att låsa upp en region för den tillfälliga filen.

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

Parameterar

nPos
Positionen i filen där upplåsningen ska börja.

nCount
Längden på byteintervallet som ska låsas upp.

Returvärde

Returnerar S_OK vid lyckat fel eller ett fel med HRESULT vid fel.

Anmärkningar

Anropar CAtlFile::UnlockRange.

CAtlTemporaryFile::Write

Anropa den här metoden för att skriva data till den temporära filen som börjar vid den position som anges av filpekaren.

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

Parameterar

pBuffer
Bufferten som innehåller de data som ska skrivas till filen.

nBufSize
Antalet byte som ska överföras från bufferten.

pnBytesWritten
Antalet skrivna byte.

Returvärde

Returnerar S_OK vid lyckat fel eller ett fel med HRESULT vid fel.

Anmärkningar

Anropar CAtlFile::Write.

Exempel

Se exemplet för CAtlTemporaryFile::CAtlTemporaryFile.

Se även

översikt över -klass
CAtlFile-klass