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.
class CAtlTemporaryFile
Nom | Description |
---|---|
CAtlTemporaryFile ::CAtlTemporaryFile | Constructeur . |
CAtlTemporaryFile ::~CAtlTemporaryFile | Destructeur. |
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. |
Nom | Description |
---|---|
CAtlTemporaryFile ::operator HANDLE | Retourne un handle au fichier temporaire. |
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é.
En-tête : atlfile.h
Consultez l’exemple de CAtlTemporaryFile ::CAtlTemporaryFile.
Constructeur .
CAtlTemporaryFile() throw();
Un fichier n’est pas réellement ouvert tant qu’un appel n’est pas effectué à CAtlTemporaryFile ::Create.
// 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);
Destructeur.
~CAtlTemporaryFile() throw();
Le destructeur appelle 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();
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é.
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Consultez l’exemple de CAtlTemporaryFile ::CAtlTemporaryFile.
Appelez cette méthode pour créer un fichier temporaire.
HRESULT Create(LPCTSTR pszDir = NULL, DWORD dwDesiredAccess = GENERIC_WRITE) throw();
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.
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Consultez l’exemple de CAtlTemporaryFile ::CAtlTemporaryFile.
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();
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Similaire à CAtlTemporaryFile ::HandsOff, sauf que le fichier n’est pas fermé.
Consultez l’exemple de CAtlTemporaryFile ::CAtlTemporaryFile.
Appelez cette méthode pour obtenir la position actuelle du pointeur de fichier.
HRESULT GetPosition(ULONGLONG& nPos) const throw();
nPos
Position en octets.
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Pour modifier la position du pointeur de fichier, utilisez CAtlTemporaryFile ::Seek.
Appelez cette méthode pour obtenir la taille en octets du fichier temporaire.
HRESULT GetSize(ULONGLONG& nLen) const throw();
nLen
Nombre d’octets dans le fichier.
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Appelez cette méthode pour dissocier le fichier de l’objet CAtlTemporaryFile
.
HRESULT HandsOff() throw();
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
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.
Appelez cette méthode pour ouvrir un fichier temporaire existant et positionner le pointeur à la fin du fichier.
HRESULT HandsOn() throw();
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
CAtlTemporaryFile ::HandsOff et HandsOn
sont utilisés pour dissocier le fichier de l’objet et le détacher si nécessaire.
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();
nPos
Position dans le fichier où le verrou doit commencer.
nCount
Longueur de la plage d’octets à verrouiller.
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
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.
Retourne un handle au fichier temporaire.
operator HANDLE() throw();
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();
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.
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Appelle CAtlFile ::Read. Pour modifier la position du pointeur de fichier, appelez CAtlTemporaryFile ::Seek.
Consultez l’exemple de CAtlTemporaryFile ::CAtlTemporaryFile.
Appelez cette méthode pour déplacer le pointeur de fichier du fichier temporaire.
HRESULT Seek(LONGLONG nOffset, DWORD dwFrom = FILE_CURRENT) throw();
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).
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Appelle CAtlFile ::Seek. Pour obtenir la position actuelle du pointeur de fichier, appelez CAtlTemporaryFile ::GetPosition.
Consultez l’exemple de CAtlTemporaryFile ::CAtlTemporaryFile.
Appelez cette méthode pour définir la taille du fichier temporaire.
HRESULT SetSize(ULONGLONG nNewLen) throw();
nNewLen
Nouvelle longueur du fichier en octets.
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Appelle CAtlFile ::SetSize. Au retour, le pointeur de fichier est positionné à la fin du fichier.
Appelez cette méthode pour retourner le nom du fichier temporaire.
LPCTSTR TempFileName() throw();
Retourne le LPCTSTR pointant vers le nom du fichier.
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.
Appelez cette méthode pour déverrouiller une région du fichier temporaire.
HRESULT UnlockRange(ULONGLONG nPos, ULONGLONG nCount) throw();
nPos
Position dans le fichier où le déverrouillage doit commencer.
nCount
Longueur de la plage d’octets à déverrouiller.
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Appelle CAtlFile ::UnlockRange.
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();
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.
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Appelle CAtlFile ::Write.
Consultez l’exemple de CAtlTemporaryFile ::CAtlTemporaryFile.