Partager via


CAtlFile, classe

Cette classe fournit un wrapper mince autour de l’API de gestion des fichiers Windows.

Important

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

Syntaxe

class CAtlFile : public CHandle

Membres

Constructeurs publics

Nom Description
CAtlFile ::CAtlFile Constructeur .

Méthodes publiques

Nom Description
CAtlFile ::Create Appelez cette méthode pour créer ou ouvrir un fichier.
CAtlFile ::Flush Appelez cette méthode pour effacer les mémoires tampons du fichier et provoquer l’écriture de toutes les données mises en mémoire tampon dans le fichier.
CAtlFile ::GetOverlappedResult Appelez cette méthode pour obtenir les résultats d’une opération qui se chevauche sur le fichier.
CAtlFile ::GetPosition Appelez cette méthode pour obtenir la position actuelle du pointeur de fichier à partir du fichier.
CAtlFile ::GetSize Appelez cette méthode pour obtenir la taille en octets du fichier.
CAtlFile ::LockRange Appelez cette méthode pour verrouiller une région dans le fichier pour empêcher d’autres processus de l’accéder.
CAtlFile ::Read Appelez cette méthode pour lire les données d’un fichier en commençant à la position indiquée par le pointeur de fichier.
CAtlFile ::Seek Appelez cette méthode pour déplacer le pointeur de fichier du fichier.
CAtlFile ::SetSize Appelez cette méthode pour définir la taille du fichier.
CAtlFile ::UnlockRange Appelez cette méthode pour déverrouiller une région du fichier.
CAtlFile ::Write Appelez cette méthode pour écrire des données dans le fichier en commençant à la position indiquée par le pointeur de fichier.

Membres de données protégés

Nom Description
CAtlFile ::m_pTM Pointeur vers l’objet CAtlTransactionManager

Notes

Utilisez cette classe lorsque les besoins de gestion des fichiers sont relativement simples, mais que l’abstraction que fournit l’API Windows est requise, sans inclure les dépendances MFC.

Hiérarchie d'héritage

CHandle

CAtlFile

Spécifications

En-tête : atlfile.h

CAtlFile ::CAtlFile

Constructeur .

CAtlFile() throw();
CAtlFile(CAtlTransactionManager* pTM = NULL) throw();
CAtlFile(CAtlFile& file) throw();
explicit CAtlFile(HANDLE hFile) throw();

Paramètres

file
Objet de fichier.

hFile
Handle de fichier.

pTM
Pointeur vers l'objet CAtlTransactionManager

Notes

Le constructeur de copie transfère la propriété du handle de fichier de l’objet d’origine CAtlFile à l’objet nouvellement construit.

CAtlFile ::Create

Appelez cette méthode pour créer ou ouvrir un fichier.

HRESULT Create(
    LPCTSTR szFilename,
    DWORD dwDesiredAccess,
    DWORD dwShareMode,
    DWORD dwCreationDisposition,
    DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL,
    LPSECURITY_ATTRIBUTES lpsa = NULL,
    HANDLE hTemplateFile = NULL) throw();

Paramètres

szFilename
Nom du fichier.

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

dwShareMode
Mode de partage. Voir dwShareMode dans CreateFile.

dwCreationDisposition
Disposition de création. Voir dwCreationDisposition dans CreateFile.

dwFlagsAndAttributes
Indicateurs et attributs. Voir dwFlagsAndAttributes in CreateFile.

lpsa
Attributs de sécurité. Voir lpSecurityAttributes dans CreateFile.

hTemplateFile
Fichier de modèle. Voir hTemplateFile dans CreateFile.

Valeur de retour

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

Notes

Appelle CreateFile pour créer ou ouvrir le fichier.

CAtlFile ::Flush

Appelez cette méthode pour effacer les mémoires tampons du fichier et provoquer l’écriture de toutes les données mises en mémoire tampon dans le fichier.

HRESULT Flush() throw();

Valeur de retour

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

Notes

Appelle FlushFileBuffers pour vider les données mises en mémoire tampon dans le fichier.

CAtlFile ::GetOverlappedResult

Appelez cette méthode pour obtenir les résultats d’une opération qui se chevauche sur le fichier.

HRESULT GetOverlappedResult(
    LPOVERLAPPED pOverlapped,
    DWORD& dwBytesTransferred,
    BOOL bWait) throw();

Paramètres

pOverlapped
Structure superposée. Consultez lpOverlapped dans GetOverlappedResult dans le Kit de développement logiciel (SDK) Windows.

dwBytesTransferred
Octets transférés. Voir lpNumberOfBytesTransferred en GetOverlappedResult.

appât
Option d’attente. Voir l’appât dans GetOverlappedResult.

Valeur de retour

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

Notes

Appelle GetOverlappedResult pour obtenir les résultats d’une opération superposée sur le fichier.

CAtlFile ::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

Appelle SetFilePointer pour obtenir la position actuelle du pointeur de fichier.

CAtlFile ::GetSize

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

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.

Notes

Appelle GetFileSize pour obtenir la taille en octets du fichier.

CAtlFile ::LockRange

Appelez cette méthode pour verrouiller une région dans le fichier 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

Appelle LockFile pour verrouiller une région dans le fichier. 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. Lorsque vous déverrouillez une région, à l’aide de CAtlFile ::UnlockRange, la plage d’octets doit correspondre 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.

CAtlFile ::m_pTM

Pointeur vers un CAtlTransactionManager objet.

CAtlTransactionManager* m_pTM;

Notes

CAtlFile ::Read

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

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

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

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped,
    LPOVERLAPPED_COMPLETION_ROUTINE pfnCompletionRoutine) 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.

pOverlapped
Structure superposée. Consultez lpOverlapped dans ReadFile dans le Kit de développement logiciel (SDK) Windows.

pfnCompletionRoutine
Routine d’achèvement. Consultez lpCompletionRoutine dans ReadFileEx 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.

Notes

Les trois premiers formulaires appellent ReadFile, le dernier ReadFileEx pour lire les données du fichier. Utilisez CAtlFile ::Seek pour déplacer le pointeur de fichier.

CAtlFile ::Seek

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

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

Paramètres

nOffset
Décalage 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 SetFilePointer pour déplacer le pointeur de fichier.

CAtlFile ::SetSize

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

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 SetFilePointer et SetEndOfFile pour définir la taille du fichier. Au retour, le pointeur de fichier est positionné à la fin du fichier.

CAtlFile ::UnlockRange

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

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 UnlockFile pour déverrouiller une région du fichier.

CAtlFile ::Write

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

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped,
    LPOVERLAPPED_COMPLETION_ROUTINE pfnCompletionRoutine) throw();

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

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped) 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.

pOverlapped
Structure superposée. Consultez lpOverlapped dans WriteFile dans le Kit de développement logiciel (SDK) Windows.

pfnCompletionRoutine
Routine d’achèvement. Consultez lpCompletionRoutine dans WriteFileEx dans le Kit de développement logiciel (SDK) Windows.

pnBytesWritten
Octets écrits.

Valeur de retour

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

Notes

Les trois premiers formulaires appellent WriteFile, le dernier appelle WriteFileEx pour écrire des données dans le fichier. Utilisez CAtlFile ::Seek pour déplacer le pointeur de fichier.

Voir aussi

Exemple de marque
Vue d’ensemble de la classe
CHandle, classe