Share via


CAtlTemporaryFile-klasse

Deze klasse biedt methoden voor het maken en gebruiken van een tijdelijk bestand.

Belangrijk

Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

Syntaxis

class CAtlTemporaryFile

Leden

Openbare constructors

Naam Beschrijving
CAtlTemporaryFile::CAtlTemporaryFile De constructor.
CAtlTemporaryFile::~CAtlTemporaryFile De destructor.

Openbare methoden

Naam Beschrijving
CAtlTemporaryFile::Close Roep deze methode aan om een tijdelijk bestand te sluiten en de inhoud ervan te verwijderen of op te slaan onder de opgegeven bestandsnaam.
CAtlTemporaryFile::Create Roep deze methode aan om een tijdelijk bestand te maken.
CAtlTemporaryFile::Flush Roep deze methode aan om af te dwingen dat gegevens die in de bestandsbuffer blijven, naar het tijdelijke bestand worden geschreven.
CAtlTemporaryFile::GetPosition Roep deze methode aan om de positie van de huidige bestandsaanwijzer op te halen.
CAtlTemporaryFile::GetSize Roep deze methode aan om de grootte op te halen in bytes van het tijdelijke bestand.
CAtlTemporaryFile::HandsOff Roep deze methode aan om het bestand los te koppelen van het CAtlTemporaryFile object.
CAtlTemporaryFile::HandsOn Roep deze methode aan om een bestaand tijdelijk bestand te openen en de aanwijzer aan het einde van het bestand te plaatsen.
CAtlTemporaryFile::LockRange Roep deze methode aan om een regio in het bestand te vergrendelen om te voorkomen dat andere processen er toegang toe hebben.
CAtlTemporaryFile::Read Roep deze methode aan om gegevens uit het tijdelijke bestand te lezen vanaf de positie die wordt aangegeven door de bestandsaanwijzer.
CAtlTemporaryFile::Seek Roep deze methode aan om de bestandswijzer van het tijdelijke bestand te verplaatsen.
CAtlTemporaryFile::SetSize Roep deze methode aan om de grootte van het tijdelijke bestand in te stellen.
CAtlTemporaryFile::TempFileName Roep deze methode aan om de naam van het tijdelijke bestand te retourneren.
CAtlTemporaryFile::UnlockRange Roep deze methode aan om een regio van het tijdelijke bestand te ontgrendelen.
CAtlTemporaryFile::Write Roep deze methode aan om gegevens naar het tijdelijke bestand te schrijven vanaf de positie die wordt aangegeven door de bestandsaanwijzer.

Openbare operators

Naam Beschrijving
CAtlTemporaryFile::operator HANDLE Retourneert een ingang naar het tijdelijke bestand.

Opmerkingen

CAtlTemporaryFile maakt het eenvoudig om een tijdelijk bestand te maken en te gebruiken. Het bestand wordt automatisch benoemd, geopend, gesloten en verwijderd. Als de bestandsinhoud vereist is nadat het bestand is gesloten, kunnen ze worden opgeslagen in een nieuw bestand met een opgegeven naam.

Behoeften

Header: atlfile.h

Voorbeeld

Zie het voorbeeld voor CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::CAtlTemporaryFile

De constructor.

CAtlTemporaryFile() throw();

Opmerkingen

Een bestand wordt pas geopend als er een aanroep naar CAtlTemporaryFile::Create wordt gedaan.

Voorbeeld

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

De destructor.

~CAtlTemporaryFile() throw();

Opmerkingen

De destructor roept CAtlTemporaryFile::Close aan.

CAtlTemporaryFile::Close

Roep deze methode aan om een tijdelijk bestand te sluiten en de inhoud ervan te verwijderen of op te slaan onder de opgegeven bestandsnaam.

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

Parameterwaarden

szNewName
De naam voor het nieuwe bestand waarin de inhoud van het tijdelijke bestand moet worden opgeslagen. Als dit argument NULL is, wordt de inhoud van het tijdelijke bestand verwijderd.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Voorbeeld

Zie het voorbeeld voor CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Create

Roep deze methode aan om een tijdelijk bestand te maken.

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

Parameterwaarden

pszDir
Het pad voor het tijdelijke bestand. Als dit NULL is, wordt GetTempPath aangeroepen om een pad toe te wijzen.

dwDesiredAccess
De gewenste toegang. Zie dwDesiredAccess in CreateFile in de Windows SDK.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Voorbeeld

Zie het voorbeeld voor CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Flush

Roep deze methode aan om af te dwingen dat gegevens die in de bestandsbuffer blijven, naar het tijdelijke bestand worden geschreven.

HRESULT Flush() throw();

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Vergelijkbaar met CAtlTemporaryFile::HandsOff, behalve dat het bestand niet is gesloten.

Voorbeeld

Zie het voorbeeld voor CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::GetPosition

Roep deze methode aan om de positie van de huidige bestandsaanwijzer op te halen.

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

Parameterwaarden


De positie in bytes.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Als u de positie van de bestandsaanwijzer wilt wijzigen, gebruikt u CAtlTemporaryFile::Seek.

CAtlTemporaryFile::GetSize

Roep deze methode aan om de grootte op te halen in bytes van het tijdelijke bestand.

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

Parameterwaarden

nLen
Het aantal bytes in het bestand.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

CAtlTemporaryFile::HandsOff

Roep deze methode aan om het bestand los te koppelen van het CAtlTemporaryFile object.

HRESULT HandsOff() throw();

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

HandsOff en CAtlTemporaryFile::HandsOn worden gebruikt om het bestand van het object te ontkoppelen en het indien nodig opnieuw te koppelen. HandsOff dwingt eventuele resterende gegevens in de bestandsbuffer naar het tijdelijke bestand te worden geschreven en sluit het bestand. Als u het bestand definitief wilt sluiten en verwijderen, of als u de inhoud van het bestand met een bepaalde naam wilt sluiten en behouden, gebruikt u CAtlTemporaryFile::Close.

CAtlTemporaryFile::HandsOn

Roep deze methode aan om een bestaand tijdelijk bestand te openen en de aanwijzer aan het einde van het bestand te plaatsen.

HRESULT HandsOn() throw();

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

CAtlTemporaryFile::HandsOff en HandsOn worden gebruikt om het bestand van het object te ontkoppelen en indien nodig opnieuw te koppelen.

CAtlTemporaryFile::LockRange

Roep deze methode aan om een regio in het tijdelijke bestand te vergrendelen om te voorkomen dat andere processen er toegang toe hebben.

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

Parameterwaarden


De positie in het bestand waar de vergrendeling moet beginnen.

nCount
De lengte van het bytebereik dat moet worden vergrendeld.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Het vergrendelen van bytes in een bestand voorkomt toegang tot die bytes door andere processen. U kunt meerdere regio's van een bestand vergrendelen, maar er zijn geen overlappende regio's toegestaan. Als u een regio wilt ontgrendelen, gebruikt u CAtlTemporaryFile::UnlockRange, zodat het bytebereik exact overeenkomt met de regio die eerder was vergrendeld. LockRange voegt geen aangrenzende regio's samen; als twee vergrendelde regio's aangrenzend zijn, moet u elk afzonderlijk ontgrendelen.

CAtlTemporaryFile::operator HANDLE

Retourneert een ingang naar het tijdelijke bestand.

operator HANDLE() throw();

CAtlTemporaryFile::Read

Roep deze methode aan om gegevens uit het tijdelijke bestand te lezen vanaf de positie die wordt aangegeven door de bestandsaanwijzer.

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

Parameterwaarden

pBuffer
Wijs de buffer aan waarmee de gegevens worden gelezen uit het bestand.

nBufSize
De buffergrootte in bytes.

nBytesRead
Het aantal gelezen bytes.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Roept CAtlFile::Read. Als u de positie van de bestandsaanwijzer wilt wijzigen, roept u CAtlTemporaryFile::Seek aan.

Voorbeeld

Zie het voorbeeld voor CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Seek

Roep deze methode aan om de bestandswijzer van het tijdelijke bestand te verplaatsen.

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

Parameterwaarden

nOffset
De offset, in bytes, vanaf het beginpunt dat door dwFrom is opgegeven.

dwFrom
Het beginpunt (FILE_BEGIN, FILE_CURRENT of FILE_END).

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Roept CAtlFile::Seek aan. Als u de huidige bestandsaanwijzerpositie wilt verkrijgen, roept u CAtlTemporaryFile::GetPosition aan.

Voorbeeld

Zie het voorbeeld voor CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::SetSize

Roep deze methode aan om de grootte van het tijdelijke bestand in te stellen.

HRESULT SetSize(ULONGLONG nNewLen) throw();

Parameterwaarden

nNewLen
De nieuwe lengte van het bestand in bytes.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Roept CAtlFile::SetSize aan. Bij terugkeer wordt de bestandsaanwijzer aan het einde van het bestand weergegeven.

CAtlTemporaryFile::TempFileName

Roep deze methode aan om de naam van het tijdelijke bestand te retourneren.

LPCTSTR TempFileName() throw();

Retourwaarde

Retourneert de LPCTSTR die verwijst naar de bestandsnaam.

Opmerkingen

De bestandsnaam wordt gegenereerd in CAtlTemporaryFile::CAtlTemporaryFile met een aanroep naar de Functie GetTempFile Windows SDK. De bestandsextensie is altijd 'TFR' voor het tijdelijke bestand.

CAtlTemporaryFile::UnlockRange

Roep deze methode aan om een regio van het tijdelijke bestand te ontgrendelen.

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

Parameterwaarden


De positie in het bestand waar de ontgrendeling moet beginnen.

nCount
De lengte van het bytebereik dat moet worden ontgrendeld.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Roept CAtlFile::UnlockRange aan.

CAtlTemporaryFile::Write

Roep deze methode aan om gegevens naar het tijdelijke bestand te schrijven vanaf de positie die wordt aangegeven door de bestandsaanwijzer.

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

Parameterwaarden

pBuffer
De buffer met de gegevens die naar het bestand moeten worden geschreven.

nBufSize
Het aantal bytes dat moet worden overgedragen vanuit de buffer.

pnBytesWritten
Het aantal geschreven bytes.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Roept CAtlFile::Write aan.

Voorbeeld

Zie het voorbeeld voor CAtlTemporaryFile::CAtlTemporaryFile.

Zie ook

Overzicht van klassen
CAtlFile-klasse