Partager via


CFile::CFile

 

Construit et initialise un objet CFile.

Syntaxe

CFile( ); CFile(    CAtlTransactionManager* pTM ); CFile(    HANDLE hFile  ); CFile(    LPCTSTR lpszFileName,    UINT nOpenFlags  ); CFile(    LPCTSTR lpszFileName,    UINT nOpenFlags,    CAtlTransactionManager* pTM );

Paramètres

  • hFile
    Handle d'un fichier à attacher à l'objet CFile.

  • lpszFileName
    Chemin d'accès relatif ou complet d'un fichier à attacher à l'objet CFile.

  • nOpenFlags
    Combinaison de bits (OR) ou options d'accès au fichier pour le fichier spécifié. Consultez la section Notes pour connaître les options possibles.

  • pTM
    Pointeur vers l'objet CAtlTransactionManager

Notes

Les cinq tableaux suivants répertorient les options possibles du paramètre nOpenFlags.

Choisissez une seule des options suivantes pour le mode d'accès aux fichiers. Le mode d'accès aux fichiers par défaut est CFile::modeRead, c'est-à-dire en lecture seule.

Valeur

Description

CFile::modeRead

Demande l'accès en lecture uniquement.

CFile::modeWrite

Demande l'accès en écriture uniquement.

CFile::modeReadWrite

Demande l'accès en lecture et en écriture.

Choisissez l'une des options suivantes pour le mode caractère.

Valeur

Description

CFile::typeBinary

Définit le mode binaire (utilisé dans les classes dérivées uniquement).

CFile::typeText

Définit le mode texte avec un traitement spécial des paires retour chariot/saut de ligne (utilisé dans les classes dérivées uniquement).

CFile::typeUnicode

Définit le mode Unicode (utilisé dans les classes dérivées uniquement). Le texte est écrit dans le fichier au format Unicode quand l'application est générée dans une configuration Unicode. Aucune marque d'ordre d'octet n'est écrite dans le fichier.

Choisissez une seule des options suivantes pour le mode de partage de fichiers. Le mode de partage de fichiers par défaut est CFile::shareExclusive, c'est-à-dire exclusif.

Valeur

Description

CFile::shareDenyNone

Aucune restriction de partage.

CFile::shareDenyRead

Refuse l'accès en lecture à tous les autres.

CFile::shareDenyWrite

Refuse l'accès en écriture à tous les autres.

CFile::shareExclusive

Refuse l'accès en lecture et en écriture à tous les autres.

Choisissez la première ou les deux options suivantes pour le mode de création de fichiers. Le mode de création par défaut est CFile::modeNoTruncate, c'est-à-dire ouvrir l'existant.

Valeur

Description

CFile::modeCreate

Crée un fichier s'il n'en existe aucun. Si le fichier existe déjà, CFileException est levé.

CFile::modeNoTruncate

Crée un fichier s'il n'en existe aucun. Sinon, si le fichier existe déjà, il est attaché à l'objet CFile.

Choisissez les options de mise en cache de fichiers suivantes d'après leur description. Par défaut, le système utilise un modèle de mise en cache à usage général qui n'est pas disponible en tant qu'option.

Valeur

Description

CFile::osNoBuffer

Le système n'utilise pas de cache intermédiaire pour le fichier. Cette option annule les deux options suivantes.

CFile::osRandomAccess

Le cache de fichiers est optimisé pour l'accès aléatoire. N'utilisez pas cette option et l'option d'analyse séquentielle.

CFile::osSequentialScan

Le cache de fichiers est optimisé pour l'accès séquentiel. N'utilisez pas cette option et l'option d'accès aléatoire.

CFile::osWriteThrough

Les opérations d'écriture sont effectuées sans délai.

Choisissez l'option de sécurité suivante pour empêcher l'héritage du handle de fichier. Par défaut, tous les nouveaux processus enfants peuvent utiliser le handle de fichier.

Valeur

Description

CFile::modeNoInherit

Empêche les processus enfants d'utiliser le handle de fichier.

Le constructeur par défaut initialise les membres mais n'attache aucun fichier à l'objet CFile. Après avoir utilisé ce constructeur, employez la méthode CFile::Open pour ouvrir un fichier et l'attacher à l'objet CFile.

Le constructeur avec un seul paramètre initialise les membres et attache un fichier existant à l'objet CFile.

Le constructeur avec deux paramètres initialise les membres et tente d'ouvrir le fichier spécifié. Si ce constructeur ouvre correctement le fichier spécifié, le fichier est attaché à l'objet CFile. Sinon, ce constructeur émet un pointeur vers un objet CInvalidArgException. Pour plus d'informations sur la gestion des exceptions, consultez Exceptions.

Si un objet CFile ouvre correctement un fichier spécifié, ce dernier est fermé automatiquement quand l'objet CFile est détruit. Sinon, vous devez fermer explicitement le fichier une fois qu'il n'est plus attaché à l'objet CFile.

Exemple

Le code suivant illustre l'utilisation de CFile.

HANDLE hFile = CreateFile(_T("CFile_File.dat"),
   GENERIC_WRITE, FILE_SHARE_READ,
   NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

if (hFile == INVALID_HANDLE_VALUE)
{
   AfxMessageBox(_T("Couldn't create the file!"));
}
else
{
   // Attach a CFile object to the handle we have.
   CFile myFile(hFile);

   static const TCHAR sz[] = _T("I love CFile!");

   // write string
   myFile.Write(sz, sizeof(sz));

   // We need to call Close() explicitly. Note that there's no need to 
   // call CloseHandle() on the handle returned by the API because 
   // Close() automatically calls CloseHandle() for us.
   myFile.Close();

Configuration requise

En-tête : afx.h

Voir aussi

CFile Class
Graphique hiérarchique