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