Partager via


CAtlTemporaryFile, classe

Cette classe fournit des méthodes pour la création et l’utilisation d’un fichier temporaire.

Important

Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.

Syntaxe

class CAtlTemporaryFile

Membres

Constructeurs publics

Nom Description
CAtlTemporaryFile ::CAtlTemporaryFile Constructeur .
CAtlTemporaryFile ::~CAtlTemporaryFile Destructeur.

Méthodes publiques

Nom Description
CAtlTemporaryFile ::Close Appelez cette méthode pour fermer un fichier temporaire et supprimer son contenu ou les stocker sous le nom de fichier spécifié.
CAtlTemporaryFile ::Create Appelez cette méthode pour créer un fichier temporaire.
CAtlTemporaryFile ::Flush Appelez cette méthode pour forcer l’écriture de toutes les données restantes dans la mémoire tampon de fichier dans le fichier temporaire.
CAtlTemporaryFile ::GetPosition Appelez cette méthode pour obtenir la position actuelle du pointeur de fichier.
CAtlTemporaryFile ::GetSize Appelez cette méthode pour obtenir la taille en octets du fichier temporaire.
CAtlTemporaryFile ::HandsOff Appelez cette méthode pour dissocier le fichier de l’objet CAtlTemporaryFile .
CAtlTemporaryFile ::HandsOn Appelez cette méthode pour ouvrir un fichier temporaire existant et positionner le pointeur à la fin du fichier.
CAtlTemporaryFile ::LockRange Appelez cette méthode pour verrouiller une région dans le fichier pour empêcher d’autres processus de l’accéder.
CAtlTemporaryFile ::Read Appelez cette méthode pour lire les données du fichier temporaire en commençant à la position indiquée par le pointeur de fichier.
CAtlTemporaryFile ::Seek Appelez cette méthode pour déplacer le pointeur de fichier du fichier temporaire.
CAtlTemporaryFile ::SetSize Appelez cette méthode pour définir la taille du fichier temporaire.
CAtlTemporaryFile ::TempFileName Appelez cette méthode pour retourner le nom du fichier temporaire.
CAtlTemporaryFile ::UnlockRange Appelez cette méthode pour déverrouiller une région du fichier temporaire.
CAtlTemporaryFile ::Write Appelez cette méthode pour écrire des données dans le fichier temporaire en commençant à la position indiquée par le pointeur de fichier.

Opérateurs publics

Nom Description
CAtlTemporaryFile ::operator HANDLE Retourne un handle au fichier temporaire.

Notes

CAtlTemporaryFile facilite la création et l’utilisation d’un fichier temporaire. Le fichier est automatiquement nommé, ouvert, fermé et supprimé. Si le contenu du fichier est requis une fois le fichier fermé, il peut être enregistré dans un nouveau fichier avec un nom spécifié.

Spécifications

En-tête : atlfile.h

Exemple

Consultez l’exemple de CAtlTemporaryFile ::CAtlTemporaryFile.

CAtlTemporaryFile ::CAtlTemporaryFile

Constructeur .

CAtlTemporaryFile() throw();

Notes

Un fichier n’est pas réellement ouvert tant qu’un appel n’est pas effectué à CAtlTemporaryFile ::Create.

Exemple

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

Destructeur.

~CAtlTemporaryFile() throw();

Notes

Le destructeur appelle CAtlTemporaryFile ::Close.

CAtlTemporaryFile ::Close

Appelez cette méthode pour fermer un fichier temporaire et supprimer son contenu ou les stocker sous le nom de fichier spécifié.

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

Paramètres

szNewName
Nom du nouveau fichier dans lequel stocker le contenu du fichier temporaire. Si cet argument est NULL, le contenu du fichier temporaire est supprimé.

Valeur de retour

Retourne S_OK en cas de réussite ou une erreur HRESULT en cas d’échec.

Exemple

Consultez l’exemple de CAtlTemporaryFile ::CAtlTemporaryFile.

CAtlTemporaryFile ::Create

Appelez cette méthode pour créer un fichier temporaire.

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

Paramètres

pszDir
Chemin d’accès du fichier temporaire. S’il s’agit de NULL, GetTempPath est appelé pour attribuer un chemin d’accès.

dwDesiredAccess
Accès souhaité. Consultez dwDesiredAccess dans CreateFile dans le Kit de développement logiciel (SDK) Windows.

Valeur de retour

Retourne S_OK en cas de réussite ou une erreur HRESULT en cas d’échec.

Exemple

Consultez l’exemple de CAtlTemporaryFile ::CAtlTemporaryFile.

CAtlTemporaryFile ::Flush

Appelez cette méthode pour forcer l’écriture de toutes les données restantes dans la mémoire tampon de fichier dans le fichier temporaire.

HRESULT Flush() throw();

Valeur de retour

Retourne S_OK en cas de réussite ou une erreur HRESULT en cas d’échec.

Notes

Similaire à CAtlTemporaryFile ::HandsOff, sauf que le fichier n’est pas fermé.

Exemple

Consultez l’exemple de CAtlTemporaryFile ::CAtlTemporaryFile.

CAtlTemporaryFile ::GetPosition

Appelez cette méthode pour obtenir la position actuelle du pointeur de fichier.

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

Paramètres

nPos
Position en octets.

Valeur de retour

Retourne S_OK en cas de réussite ou une erreur HRESULT en cas d’échec.

Notes

Pour modifier la position du pointeur de fichier, utilisez CAtlTemporaryFile ::Seek.

CAtlTemporaryFile ::GetSize

Appelez cette méthode pour obtenir la taille en octets du fichier temporaire.

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

Paramètres

nLen
Nombre d’octets dans le fichier.

Valeur de retour

Retourne S_OK en cas de réussite ou une erreur HRESULT en cas d’échec.

CAtlTemporaryFile ::HandsOff

Appelez cette méthode pour dissocier le fichier de l’objet CAtlTemporaryFile .

HRESULT HandsOff() throw();

Valeur de retour

Retourne S_OK en cas de réussite ou une erreur HRESULT en cas d’échec.

Notes

HandsOff et CAtlTemporaryFile ::HandsOn sont utilisés pour dissocier le fichier de l’objet et le détacher si nécessaire. HandsOff force les données restantes dans la mémoire tampon du fichier à écrire dans le fichier temporaire, puis ferme le fichier. Si vous souhaitez fermer et supprimer définitivement le fichier, ou si vous souhaitez fermer et conserver le contenu du fichier avec un nom donné, utilisez CAtlTemporaryFile ::Close.

CAtlTemporaryFile ::HandsOn

Appelez cette méthode pour ouvrir un fichier temporaire existant et positionner le pointeur à la fin du fichier.

HRESULT HandsOn() throw();

Valeur de retour

Retourne S_OK en cas de réussite ou une erreur HRESULT en cas d’échec.

Notes

CAtlTemporaryFile ::HandsOff et HandsOn sont utilisés pour dissocier le fichier de l’objet et le détacher si nécessaire.

CAtlTemporaryFile ::LockRange

Appelez cette méthode pour verrouiller une région dans le fichier temporaire pour empêcher d’autres processus de l’accéder.

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

Paramètres

nPos
Position dans le fichier où le verrou doit commencer.

nCount
Longueur de la plage d’octets à verrouiller.

Valeur de retour

Retourne S_OK en cas de réussite ou une erreur HRESULT en cas d’échec.

Notes

Le verrouillage d’octets dans un fichier empêche l’accès à ces octets par d’autres processus. Vous pouvez verrouiller plusieurs régions d’un fichier, mais aucune région qui se chevauche n’est autorisée. Pour déverrouiller une région, utilisez CAtlTemporaryFile ::UnlockRange, ce qui garantit que la plage d’octets correspond exactement à la région précédemment verrouillée. LockRange ne fusionne pas les régions adjacentes ; si deux régions verrouillées sont adjacentes, vous devez déverrouiller chacune séparément.

CAtlTemporaryFile ::operator HANDLE

Retourne un handle au fichier temporaire.

operator HANDLE() throw();

CAtlTemporaryFile ::Read

Appelez cette méthode pour lire les données du fichier temporaire en commençant à la position indiquée par le pointeur de fichier.

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

Paramètres

pBuffer
Pointeur vers la mémoire tampon qui recevra les données lues à partir du fichier.

nBufSize
Taille de la mémoire tampon en octets.

nBytesRead
Nombre d'octets lus.

Valeur de retour

Retourne S_OK en cas de réussite ou une erreur HRESULT en cas d’échec.

Notes

Appelle CAtlFile ::Read. Pour modifier la position du pointeur de fichier, appelez CAtlTemporaryFile ::Seek.

Exemple

Consultez l’exemple de CAtlTemporaryFile ::CAtlTemporaryFile.

CAtlTemporaryFile ::Seek

Appelez cette méthode pour déplacer le pointeur de fichier du fichier temporaire.

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

Paramètres

nOffset
Décalage, en octets, du point de départ donné par dwFrom.

dwFrom
Point de départ (FILE_BEGIN, FILE_CURRENT ou FILE_END).

Valeur de retour

Retourne S_OK en cas de réussite ou une erreur HRESULT en cas d’échec.

Notes

Appelle CAtlFile ::Seek. Pour obtenir la position actuelle du pointeur de fichier, appelez CAtlTemporaryFile ::GetPosition.

Exemple

Consultez l’exemple de CAtlTemporaryFile ::CAtlTemporaryFile.

CAtlTemporaryFile ::SetSize

Appelez cette méthode pour définir la taille du fichier temporaire.

HRESULT SetSize(ULONGLONG nNewLen) throw();

Paramètres

nNewLen
Nouvelle longueur du fichier en octets.

Valeur de retour

Retourne S_OK en cas de réussite ou une erreur HRESULT en cas d’échec.

Notes

Appelle CAtlFile ::SetSize. Au retour, le pointeur de fichier est positionné à la fin du fichier.

CAtlTemporaryFile ::TempFileName

Appelez cette méthode pour retourner le nom du fichier temporaire.

LPCTSTR TempFileName() throw();

Valeur de retour

Retourne le LPCTSTR pointant vers le nom du fichier.

Notes

Le nom de fichier est généré dans CAtlTemporaryFile ::CAtlTemporaryFile avec un appel à la fonction sdk Windows GetTempFile. L’extension de fichier sera toujours « TFR » pour le fichier temporaire.

CAtlTemporaryFile ::UnlockRange

Appelez cette méthode pour déverrouiller une région du fichier temporaire.

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

Paramètres

nPos
Position dans le fichier où le déverrouillage doit commencer.

nCount
Longueur de la plage d’octets à déverrouiller.

Valeur de retour

Retourne S_OK en cas de réussite ou une erreur HRESULT en cas d’échec.

Notes

Appelle CAtlFile ::UnlockRange.

CAtlTemporaryFile ::Write

Appelez cette méthode pour écrire des données dans le fichier temporaire en commençant à la position indiquée par le pointeur de fichier.

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

Paramètres

pBuffer
Mémoire tampon contenant les données à écrire dans le fichier.

nBufSize
Nombre d’octets à transférer à partir de la mémoire tampon.

pnBytesWritten
Nombre d’octets écrits.

Valeur de retour

Retourne S_OK en cas de réussite ou une erreur HRESULT en cas d’échec.

Notes

Appelle CAtlFile ::Write.

Exemple

Consultez l’exemple de CAtlTemporaryFile ::CAtlTemporaryFile.

Voir aussi

Vue d’ensemble de la classe
CAtlFile, classe