Share via


La classe CFileFind

Effectue des recherches de fichiers locaux et est la classe de base pour CGopherFileFind et CFtpFileFind, qui effectuent des recherches de fichiers Internet.

Syntaxe

class CFileFind : public CObject

Membres

Constructeurs publics

Nom Description
CFileFind::CFileFind Construit un objet CFileFind.

Méthodes publiques

Nom Description
CFileFind::Close Ferme la requête de recherche.
CFileFind::FindFile Recherche un répertoire pour un nom de fichier spécifié.
CFileFind::FindNextFile Poursuit une recherche de fichiers à partir d’un appel précédent à FindFile.
CFileFind::GetCreationTime Obtient l’heure de création du fichier.
CFileFind::GetFileName Obtient le nom, y compris l’extension, du fichier trouvé
CFileFind::GetFilePath Obtient le chemin d’accès complet du fichier trouvé.
CFileFind::GetFileTitle Obtient le titre du fichier trouvé. Le titre n’inclut pas l’extension.
CFileFind::GetFileURL Obtient l’URL, y compris le chemin d’accès au fichier trouvé.
CFileFind::GetLastAccessTime Obtient l’heure à laquelle le fichier a été consulté pour la dernière fois.
CFileFind::GetLastWriteTime Obtient l’heure à laquelle le fichier a été modifié pour la dernière fois et enregistré.
CFileFind::GetLength Obtient la longueur du fichier trouvé, en octets.
CFileFind::GetRoot Obtient le répertoire racine du fichier trouvé.
CFileFind::IsArchived Détermine si le fichier trouvé est archivé.
CFileFind::IsCompressed Détermine si le fichier trouvé est compressé.
CFileFind::IsDirectory Détermine si le fichier trouvé est un répertoire.
CFileFind::IsDots Détermine si le nom du fichier trouvé a le nom « » ou « ». » indiquant qu’il s’agit en fait d’un répertoire.
CFileFind::IsHidden Détermine si le fichier trouvé est masqué.
CFileFind::IsNormal Détermine si le fichier trouvé est normal (en d’autres termes, n’a pas d’autres attributs).
CFileFind::IsReadOnly Détermine si le fichier trouvé est en lecture seule.
CFileFind::IsSystem Détermine si le fichier trouvé est un fichier système.
CFileFind::IsTemporary Détermine si le fichier trouvé est temporaire.
CFileFind::MatchesMask Indique les attributs de fichier souhaités du fichier à trouver.

Méthodes protégées

Nom Description
CFileFind::CloseContext Ferme le fichier spécifié par le handle de recherche actuel.

Membres de données protégés

Nom Description
CFileFind::m_pTM Pointeur vers un CAtlTransactionManager objet.

Notes

CFileFind inclut les fonctions membres qui commencent une recherche, recherchent un fichier et retournent le titre, le nom ou le chemin d’accès du fichier. Pour les recherches Internet, la fonction GetFileURL membre retourne l’URL du fichier.

CFileFind est la classe de base pour deux autres classes MFC conçues pour rechercher des types de serveurs particuliers : CGopherFileFind fonctionne spécifiquement avec des serveurs gopher et CFtpFileFind fonctionne spécifiquement avec des serveurs FTP. Ensemble, ces trois classes fournissent un mécanisme transparent permettant au client de rechercher des fichiers, quel que soit le protocole serveur, le type de fichier ou l’emplacement, sur un ordinateur local ou un serveur distant.

Le code suivant énumère tous les fichiers du répertoire actif, en imprimant le nom de chaque fichier :

CFileFind finder;
BOOL bWorking = finder.FindFile(_T("*.*"));
while (bWorking)
{
   bWorking = finder.FindNextFile();
   TRACE(_T("%s\n"), (LPCTSTR)finder.GetFileName());
} 

Pour simplifier l’exemple, ce code utilise la classe bibliothèque cout standard C++. La cout ligne peut être remplacée par un appel à CListBox::AddString, par exemple, dans un programme avec une interface utilisateur graphique.

Pour plus d’informations sur l’utilisation CFileFind et les autres classes WinInet, consultez l’article Programmation Internet avec WinInet.

Hiérarchie d'héritage

CObject

CFileFind

Spécifications

En-têteafx.h:

CFileFind::CFileFind

Cette fonction membre est appelée lorsqu’un CFileFind objet est construit.

CFileFind();
CFileFind(CAtlTransactionManager* pTM);

Paramètres

pTM
Pointeur vers l'objet CAtlTransactionManager

Exemple

Consultez l’exemple pour CFileFind::GetFileName.

CFileFind::Close

Appelez cette fonction membre pour mettre fin à la recherche, réinitialiser le contexte et libérer toutes les ressources.

void Close();

Notes

Après l’appel Close, vous n’avez pas besoin de créer une nouvelle CFileFind instance avant d’appeler FindFile pour commencer une nouvelle recherche.

Exemple

Consultez l’exemple pour CFileFind::GetFileName.

CFileFind::CloseContext

Ferme le fichier spécifié par le handle de recherche actuel.

virtual void CloseContext();

Notes

Ferme le fichier spécifié par la valeur actuelle du handle de recherche. Remplacez cette fonction pour modifier le comportement par défaut.

Vous devez appeler au moins une fois le ou FindNextFile les FindFile fonctions pour récupérer un handle de recherche valide. Les FindFile fonctions et FindNextFile les fonctions utilisent le handle de recherche pour localiser les fichiers avec des noms qui correspondent à un nom donné.

CFileFind::FindFile

Appelez cette fonction membre pour ouvrir une recherche de fichiers.

virtual BOOL FindFile(
    LPCTSTR pstrName = NULL,
    DWORD dwUnused = 0);

Paramètres

pstrName
Pointeur vers une chaîne contenant le nom du fichier à rechercher. Si vous passez NULLpstrName, FindFile effectue une recherche sauvage carte (*.*).

dwUnused
Réservé pour rendre FindFile polymorphe avec des classes dérivées. Doit être égal à 0.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0. Pour obtenir des informations d’erreur étendues, appelez la fonction GetLastErrorWin32.

Notes

Après avoir appelé FindFile pour commencer la recherche de fichiers, appelez FindNextFile pour récupérer les fichiers suivants. Vous devez appeler FindNextFile au moins une fois avant d’appeler l’une des fonctions membres d’attribut suivantes :

Exemple

Consultez l’exemple pour CFileFind::IsDirectory.

CFileFind::FindNextFile

Appelez cette fonction membre pour poursuivre une recherche de fichiers à partir d’un appel précédent à FindFile.

virtual BOOL FindNextFile();

Valeur de retour

Différent de zéro s’il y a plus de fichiers ; zéro si le fichier trouvé est le dernier dans le répertoire ou si une erreur s’est produite. Pour obtenir des informations d’erreur étendues, appelez la fonction GetLastErrorWin32. Si le fichier trouvé est le dernier fichier du répertoire ou si aucun fichier correspondant n’est trouvé, la GetLastError fonction retourne ERROR_NO_MORE_FILES.

Notes

Vous devez appeler FindNextFile au moins une fois avant d’appeler l’une des fonctions membres d’attribut suivantes :

FindNextFile encapsule la fonction Win32 FindNextFile.

Exemple

Consultez l’exemple pour CFileFind::IsDirectory.

CFileFind::GetCreationTime

Appelez cette fonction membre pour obtenir l’heure de création du fichier spécifié.

virtual BOOL GetCreationTime(FILETIME* pTimeStamp) const;
virtual BOOL GetCreationTime(CTime& refTime) const;

Paramètres

pTimeStamp
Pointeur vers une FILETIME structure contenant l’heure de création du fichier.

refTime
Référence à un objet CTime.

Valeur de retour

Différent de zéro s’il réussit ; 0 en cas d’échec. GetCreationTime retourne 0 uniquement s’il FindNextFile n’a jamais été appelé sur cet CFileFind objet.

Notes

Vous devez appeler au moins une fois avant d’appeler FindNextFileGetCreationTime.

Remarque

Tous les systèmes de fichiers n’utilisent pas la même sémantique pour implémenter l’horodatage retourné par cette fonction. Cette fonction peut retourner la même valeur retournée par d’autres fonctions d’horodatage si le système de fichiers ou le serveur sous-jacent ne prend pas en charge la conservation de l’attribut de temps. Consultez la structure pour plus d’informations sur les WIN32_FIND_DATA formats de temps. Sur certains systèmes d’exploitation, l’heure retournée se trouve dans le fuseau horaire local de l’ordinateur. Le fichier se trouve. Pour plus d’informations, consultez l’API Win32 FileTimeToLocalFileTime .

Exemple

Consultez l’exemple pour CFileFind::GetLength.

CFileFind::GetFileName

Appelez cette fonction membre pour obtenir le nom du fichier trouvé.

virtual CString GetFileName() const;

Valeur de retour

Nom du fichier le plus récemment trouvé.

Notes

Vous devez appeler FindNextFile au moins une fois avant d’appeler GetFileName.

GetFileName est l’une des trois CFileFind fonctions membres qui retournent une forme du nom de fichier. La liste suivante décrit les trois et la façon dont ils varient :

  • GetFileName retourne le nom du fichier, y compris l’extension. Par exemple, l’appel GetFileName pour générer un message utilisateur sur le fichier c:\myhtml\myfile.txt retourne le nom myfile.txtdu fichier.

  • GetFilePath retourne le chemin d’accès complet du fichier. Par exemple, l’appel GetFilePath pour générer un message utilisateur sur le fichier c:\myhtml\myfile.txt retourne le chemin d’accès c:\myhtml\myfile.txtau fichier.

  • GetFileTitle retourne le nom du fichier, à l’exclusion de l’extension de fichier. Par exemple, l’appel GetFileTitle pour générer un message utilisateur sur le fichier c:\myhtml\myfile.txt retourne le titre myfiledu fichier.

Exemple

CFileFind finder;
static const TCHAR szFileToFind[] = _T("C:\\WINDOWS\\SYSTEM.INI");

BOOL bResult = finder.FindFile(szFileToFind);

if (bResult)
{
   finder.FindNextFile();

   TRACE(_T("Root of %s is %s\n"), szFileToFind, 
      (LPCTSTR)finder.GetRoot());

   TRACE(_T("Title of %s is %s\n"), szFileToFind, 
      (LPCTSTR)finder.GetFileTitle());

   TRACE(_T("Path of %s is %s\n"), szFileToFind,
      (LPCTSTR)finder.GetFilePath());

   TRACE(_T("URL of %s is %s\n"), szFileToFind,
      (LPCTSTR)finder.GetFileURL());

   TRACE(_T("Name of %s is %s\n"), szFileToFind,
      (LPCTSTR)finder.GetFileName());

   finder.Close();
}
else
{
   TRACE(_T("You have no %s file.\n"), szFileToFind);
}

CFileFind::GetFilePath

Appelez cette fonction membre pour obtenir le chemin complet du fichier spécifié.

virtual CString GetFilePath() const;

Valeur de retour

Chemin d’accès du fichier spécifié.

Notes

Vous devez appeler au moins une fois avant d’appeler FindNextFileGetFilePath.

GetFilePath est l’une des trois CFileFind fonctions membres qui retournent une forme du nom de fichier. La liste suivante décrit les trois et la façon dont ils varient :

  • GetFileName retourne le nom du fichier, y compris l’extension. Par exemple, l’appel GetFileName pour générer un message utilisateur sur le fichier c:\myhtml\myfile.txt retourne le nom myfile.txtdu fichier.

  • GetFilePath retourne le chemin d’accès complet du fichier. Par exemple, l’appel GetFilePath pour générer un message utilisateur sur le fichier c:\myhtml\myfile.txt retourne le chemin d’accès c:\myhtml\myfile.txtau fichier.

  • GetFileTitle retourne le nom de fichier, à l’exclusion de l’extension de fichier. Par exemple, l’appel GetFileTitle pour générer un message utilisateur sur le fichier c:\myhtml\myfile.txt retourne le titre myfiledu fichier.

Exemple

Consultez l’exemple pour CFileFind::GetFileName.

CFileFind::GetFileTitle

Appelez cette fonction membre pour obtenir le titre du fichier trouvé.

virtual CString GetFileTitle() const;

Valeur de retour

Titre du fichier.

Notes

Vous devez appeler au moins une fois avant d’appeler FindNextFileGetFileTitle.

GetFileTitle est l’une des trois CFileFind fonctions membres qui retournent une forme du nom de fichier. La liste suivante décrit les trois et la façon dont ils varient :

  • GetFileName retourne le nom du fichier, y compris l’extension. Par exemple, l’appel GetFileName pour générer un message utilisateur sur le fichier c:\myhtml\myfile.txt retourne le nom myfile.txtdu fichier.

  • GetFilePath retourne le chemin d’accès complet du fichier. Par exemple, l’appel GetFilePath pour générer un message utilisateur sur le fichier retourne le chemin d’accès du fichier c:\myhtml\myfile.txt c :\myhtml\myfile.txt.

  • GetFileTitle retourne le nom du fichier, à l’exclusion de l’extension de fichier. Par exemple, l’appel GetFileTitle pour générer un message utilisateur sur le fichier c:\myhtml\myfile.txt retourne le titre myfiledu fichier.

Exemple

Consultez l’exemple pour CFileFind::GetFileName.

CFileFind::GetFileURL

Appelez cette fonction membre pour récupérer l’URL spécifiée.

virtual CString GetFileURL() const;

Valeur de retour

URL complète.

Notes

Vous devez appeler au moins une fois avant d’appeler FindNextFileGetFileURL.

GetFileURL est similaire à la fonction GetFilePathmembre, sauf qu’elle retourne l’URL sous la forme file://path. Par exemple, l’appel GetFileURL pour obtenir l’URL complète pour myfile.txt renvoyer l’URL file://c:\myhtml\myfile.txt.

Exemple

Consultez l’exemple pour CFileFind::GetFileName.

CFileFind::GetLastAccessTime

Appelez cette fonction membre pour obtenir l’heure à laquelle le fichier spécifié a été consulté pour la dernière fois.

virtual BOOL GetLastAccessTime(CTime& refTime) const;
virtual BOOL GetLastAccessTime(FILETIME* pTimeStamp) const;

Paramètres

refTime
Référence à un objet CTime.

pTimeStamp
Pointeur vers une FILETIME structure contenant l’heure à laquelle le fichier a été consulté pour la dernière fois.

Valeur de retour

Différent de zéro s’il réussit ; 0 en cas d’échec. GetLastAccessTime retourne 0 uniquement s’il FindNextFile n’a jamais été appelé sur cet CFileFind objet.

Notes

Vous devez appeler au moins une fois avant d’appeler FindNextFileGetLastAccessTime.

Remarque

Tous les systèmes de fichiers n’utilisent pas la même sémantique pour implémenter l’horodatage retourné par cette fonction. Cette fonction peut retourner la même valeur retournée par d’autres fonctions d’horodatage si le système de fichiers ou le serveur sous-jacent ne prend pas en charge la conservation de l’attribut de temps. Consultez la structure pour plus d’informations sur les WIN32_FIND_DATA formats de temps. Sur certains systèmes d’exploitation, l’heure retournée se trouve dans le fuseau horaire local de l’ordinateur. Le fichier se trouve. Pour plus d’informations, consultez l’API Win32 FileTimeToLocalFileTime .

Exemple

Consultez l’exemple pour CFileFind::GetLength.

CFileFind::GetLastWriteTime

Appelez cette fonction membre pour obtenir la dernière fois que le fichier a été modifié.

virtual BOOL GetLastWriteTime(FILETIME* pTimeStamp) const;
virtual BOOL GetLastWriteTime(CTime& refTime) const;

Paramètres

pTimeStamp
Pointeur vers une FILETIME structure contenant l’heure à laquelle le fichier a été écrit pour la dernière fois.

refTime
Référence à un objet CTime.

Valeur de retour

Différent de zéro s’il réussit ; 0 en cas d’échec. GetLastWriteTime retourne 0 uniquement s’il FindNextFile n’a jamais été appelé sur cet CFileFind objet.

Notes

Vous devez appeler au moins une fois avant d’appeler FindNextFileGetLastWriteTime.

Remarque

Tous les systèmes de fichiers n’utilisent pas la même sémantique pour implémenter l’horodatage retourné par cette fonction. Cette fonction peut retourner la même valeur retournée par d’autres fonctions d’horodatage si le système de fichiers ou le serveur sous-jacent ne prend pas en charge la conservation de l’attribut de temps. Consultez la structure pour plus d’informations sur les WIN32_FIND_DATA formats de temps. Sur certains systèmes d’exploitation, l’heure retournée se trouve dans le fuseau horaire local de l’ordinateur. Le fichier se trouve. Pour plus d’informations, consultez l’API Win32 FileTimeToLocalFileTime .

Exemple

Consultez l’exemple pour CFileFind::GetLength.

CFileFind::GetLength

Appelez cette fonction membre pour obtenir la longueur du fichier trouvé, en octets.

ULONGLONG GetLength() const;

Valeur de retour

Longueur du fichier trouvé, en octets.

Notes

Vous devez appeler au moins une fois avant d’appeler FindNextFileGetLength.

GetLength utilise la structure WIN32_FIND_DATA Win32 pour obtenir et retourner la valeur de la taille du fichier, en octets.

Remarque

À partir de MFC 7.0, GetLength prend en charge les types entiers 64 bits. Le code créé précédemment avec cette version plus récente de la bibliothèque peut entraîner des avertissements de troncation.

Exemple

// This code fragment prints out a very verbose directory
// listing for all the files in the root directory on the
// C: drive. After the file's name, each attribute of the
// file is printed, as are the creation, last access, and 
// last write times.

CFileFind finder;

BOOL bWorking = finder.FindFile(_T("C:\\*.*"));

while (bWorking)
{
   bWorking = finder.FindNextFile();

   _tprintf_s(_T("%s\n\t"), (LPCTSTR)finder.GetFileName());
   _tprintf_s(_T("%c"), finder.IsArchived()   ? 'A' : 'a');
   _tprintf_s(_T("%c"), finder.IsCompressed() ? 'C' : 'c');
   _tprintf_s(_T("%c"), finder.IsHidden()     ? 'H' : 'h');
   _tprintf_s(_T("%c"), finder.IsNormal()     ? 'N' : 'n');
   _tprintf_s(_T("%c"), finder.IsReadOnly()   ? 'R' : 'r');
   _tprintf_s(_T("%c"), finder.IsSystem()     ? 'S' : 's');
   _tprintf_s(_T("%c"), finder.IsTemporary()  ? 'T' : 't');

   _tprintf_s(_T("\t%I64u byte(s)\n"), finder.GetLength());
   
   CTime tempTime;
   CString str;
   
   _tprintf_s(_T("\tCreated    : "));
   if (finder.GetCreationTime(tempTime))
   {
      str = tempTime.Format(_T("%c"));
      _tprintf_s(_T("%s\n"), (LPCTSTR) str);
   }
   else
   {
      _tprintf_s(_T("(unavailable)\n"));
   }

   _tprintf_s(_T("\tLast Access: "));
   if (finder.GetLastAccessTime(tempTime))
   {
      str = tempTime.Format(_T("%c"));
      _tprintf_s(_T("%s\n"), (LPCTSTR) str);
   }
   else
   {
      _tprintf_s(_T("(unavailable)\n"));
   }

   _tprintf_s(_T("\tLast Write : "));
   if (finder.GetLastWriteTime(tempTime))
   {
      str = tempTime.Format(_T("%c"));
      _tprintf_s(_T("%s\n"), (LPCTSTR) str);
   }
   else
   {
      _tprintf_s(_T("(unavailable)\n"));
   }

   _tprintf_s(_T("\n"));
} 

CFileFind::GetRoot

Appelez cette fonction membre pour obtenir la racine du fichier trouvé.

virtual CString GetRoot() const;

Valeur de retour

Racine de la recherche active.

Notes

Vous devez appeler au moins une fois avant d’appeler FindNextFileGetRoot.

Cette fonction membre retourne le spécificateur de lecteur et le nom du chemin d’accès utilisé pour démarrer une recherche. Par exemple, l’appel FindFile avec *.dat des résultats retourne GetRoot une chaîne vide. Passage d’un chemin, tel que c:\windows\system\*.dll, aux FindFile résultats GetRoot qui retournent c:\windows\system\.

Exemple

Consultez l’exemple pour CFileFind::GetFileName.

CFileFind::IsArchived

Appelez cette fonction membre pour déterminer si le fichier trouvé est archivé.

BOOL IsArchived() const;

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Les applications marquent un fichier d’archive, qui doit être sauvegardé ou supprimé, avec FILE_ATTRIBUTE_ARCHIVE, un attribut de fichier identifié dans la WIN32_FIND_DATA structure.

Vous devez appeler au moins une fois avant d’appeler FindNextFileIsArchived.

Consultez la fonction MatchesMask membre pour obtenir la liste complète des attributs de fichier.

Exemple

Consultez l’exemple pour CFileFind::GetLength.

CFileFind::IsCompressed

Appelez cette fonction membre pour déterminer si le fichier trouvé est compressé.

BOOL IsCompressed() const;

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Un fichier compressé est marqué avec FILE_ATTRIBUTE_COMPRESSED, un attribut de fichier identifié dans la WIN32_FIND_DATA structure. Pour un fichier, cet attribut indique que toutes les données du fichier sont compressées. Pour un répertoire, cet attribut indique que la compression est la valeur par défaut pour les fichiers et sous-répertoires nouvellement créés.

Vous devez appeler au moins une fois avant d’appeler FindNextFileIsCompressed.

Consultez la fonction MatchesMask membre pour obtenir la liste complète des attributs de fichier.

Exemple

Consultez l’exemple pour CFileFind::GetLength.

CFileFind::IsDirectory

Appelez cette fonction membre pour déterminer si le fichier trouvé est un répertoire.

BOOL IsDirectory() const;

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Un fichier qui est un répertoire est marqué avec FILE_ATTRIBUTE_DIRECTORY un attribut de fichier identifié dans la WIN32_FIND_DATA structure.

Vous devez appeler au moins une fois avant d’appeler FindNextFileIsDirectory.

Consultez la fonction MatchesMask membre pour obtenir la liste complète des attributs de fichier.

Exemple

Ce petit programme récurise chaque répertoire sur le lecteur C :\ et imprime le nom du répertoire.

void Recurse(LPCTSTR pstr)
{
   CFileFind finder;

   // build a string with wildcards
   CString strWildcard(pstr);
   strWildcard += _T("\\*.*");

   // start working for files
   BOOL bWorking = finder.FindFile(strWildcard);

   while (bWorking)
   {
      bWorking = finder.FindNextFile();

      // skip . and .. files; otherwise, we'd
      // recur infinitely!

      if (finder.IsDots())
         continue;

      // if it's a directory, recursively search it

      if (finder.IsDirectory())
      {
         CString str = finder.GetFilePath();
         TRACE(_T("%s\n"), (LPCTSTR)str);
         Recurse(str);
      }
   }

   finder.Close();
}

void PrintDirs()
{
   Recurse(_T("C:"));
}

CFileFind::IsDots

Appelez cette fonction membre pour tester les marqueurs de répertoire actif et de répertoire parent lors de l’itération dans les fichiers.

virtual BOOL IsDots() const;

Valeur de retour

Différent de zéro si le fichier trouvé porte le nom « ». ou « ». », ce qui indique que le fichier trouvé est en fait un répertoire. Sinon, 0.

Notes

Vous devez appeler au moins une fois avant d’appeler FindNextFileIsDots.

Exemple

Consultez l’exemple pour CFileFind::IsDirectory.

CFileFind::IsHidden

Appelez cette fonction membre pour déterminer si le fichier trouvé est masqué.

BOOL IsHidden() const;

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Fichiers masqués, marqués avec FILE_ATTRIBUTE_HIDDEN, attribut de fichier identifié dans la WIN32_FIND_DATA structure. Un fichier masqué n’est pas inclus dans une liste de répertoires ordinaire.

Vous devez appeler au moins une fois avant d’appeler FindNextFileIsHidden.

Consultez la fonction MatchesMask membre pour obtenir la liste complète des attributs de fichier.

Exemple

Consultez l’exemple pour CFileFind::GetLength.

CFileFind::IsNormal

Appelez cette fonction membre pour déterminer si le fichier trouvé est un fichier normal.

BOOL IsNormal() const;

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Fichiers marqués avec FILE_ATTRIBUTE_NORMAL, attribut de fichier identifié dans la WIN32_FIND_DATA structure. Un fichier normal n’a pas d’autres attributs définis. Tous les autres attributs de fichier remplacent cet attribut.

Vous devez appeler au moins une fois avant d’appeler FindNextFileIsNormal.

Consultez la fonction MatchesMask membre pour obtenir la liste complète des attributs de fichier.

Exemple

Consultez l’exemple pour CFileFind::GetLength.

CFileFind::IsReadOnly

Appelez cette fonction membre pour déterminer si le fichier trouvé est en lecture seule.

BOOL IsReadOnly() const;

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Un fichier en lecture seule est marqué avec FILE_ATTRIBUTE_READONLYun attribut de fichier identifié dans la WIN32_FIND_DATA structure. Les applications peuvent lire un tel fichier, mais elles ne peuvent pas y écrire ou les supprimer.

Vous devez appeler au moins une fois avant d’appeler FindNextFileIsReadOnly.

Consultez la fonction MatchesMask membre pour obtenir la liste complète des attributs de fichier.

Exemple

Consultez l’exemple pour CFileFind::GetLength.

CFileFind::IsSystem

Appelez cette fonction membre pour déterminer si le fichier trouvé est un fichier système.

BOOL IsSystem() const;

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Un fichier système est marqué avec FILE_ATTRIBUTE_SYSTEM, un attribut de fichier identifié dans la WIN32_FIND_DATA structure. Un fichier système fait partie ou est utilisé exclusivement par le système d’exploitation.

Vous devez appeler au moins une fois avant d’appeler FindNextFileIsSystem.

Consultez la fonction MatchesMask membre pour obtenir la liste complète des attributs de fichier.

Exemple

Consultez l’exemple pour CFileFind::GetLength.

CFileFind::IsTemporary

Appelez cette fonction membre pour déterminer si le fichier trouvé est un fichier temporaire.

BOOL IsTemporary() const;

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Un fichier temporaire est marqué avec FILE_ATTRIBUTE_TEMPORARY, un attribut de fichier identifié dans la WIN32_FIND_DATA structure. Un fichier temporaire est utilisé pour le stockage temporaire. Les applications doivent écrire dans le fichier uniquement si nécessaire. La plupart des données du fichier restent en mémoire sans être vidées sur le média, car le fichier sera bientôt supprimé.

Vous devez appeler au moins une fois avant d’appeler FindNextFileIsTemporary.

Consultez la fonction MatchesMask membre pour obtenir la liste complète des attributs de fichier.

Exemple

Consultez l’exemple pour CFileFind::GetLength.

CFileFind::m_pTM

Pointeur vers un CAtlTransactionManager objet.

CAtlTransactionManager* m_pTM;

Notes

CFileFind::MatchesMask

Appelez cette fonction membre pour tester les attributs de fichier sur le fichier trouvé.

virtual BOOL MatchesMask(DWORD dwMask) const;

Paramètres

dwMask
Spécifie un ou plusieurs attributs de fichier, identifiés dans la WIN32_FIND_DATA structure, pour le fichier trouvé. Pour rechercher plusieurs attributs, utilisez l’opérateur OR (|) au niveau du bit. Toute combinaison des attributs suivants est acceptable :

  • FILE_ATTRIBUTE_ARCHIVE Le fichier est un fichier d’archivage. Les applications utilisent cet attribut pour marquer des fichiers à des fins de sauvegarde ou de suppression.

  • FILE_ATTRIBUTE_COMPRESSED Le fichier ou le répertoire est compressé. Pour un fichier, cela signifie que toutes les données du fichier sont compressées. Pour un répertoire, cela signifie que la compression est la valeur par défaut pour les fichiers et sous-répertoires nouvellement créés.

  • FILE_ATTRIBUTE_DIRECTORY Le fichier est un répertoire.

  • FILE_ATTRIBUTE_NORMAL Le fichier n’a pas d’autres attributs définis. Cet attribut n’est valide que s’il est utilisé seul. Tous les autres attributs de fichier remplacent cet attribut.

  • FILE_ATTRIBUTE_HIDDEN Le fichier est masqué. Il ne doit pas être inclus dans une liste d’annuaires ordinaire.

  • FILE_ATTRIBUTE_READONLY Le fichier est en lecture seule. Les applications peuvent lire le fichier, mais ne peuvent pas y écrire ou les supprimer.

  • FILE_ATTRIBUTE_SYSTEM Le fichier fait partie ou est utilisé exclusivement par le système d’exploitation.

  • FILE_ATTRIBUTE_TEMPORARY Le fichier est utilisé pour le stockage temporaire. Les applications doivent écrire dans le fichier uniquement si nécessaire. La plupart des données du fichier restent en mémoire sans être vidées sur le média, car le fichier sera bientôt supprimé.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0. Pour obtenir des informations d’erreur étendues, appelez la fonction GetLastErrorWin32.

Notes

Vous devez appeler au moins une fois avant d’appeler FindNextFileMatchesMask.

Exemple

// This code fragment shows all of the files in the root directory
// of drive C: which have either the hidden attribute or the system
// attribute, or both.

CFileFind finder;

BOOL bWorking = finder.FindFile(_T("C:\\*.*"));

while (bWorking)
{
   bWorking = finder.FindNextFile();

   if (finder.MatchesMask(FILE_ATTRIBUTE_HIDDEN | 
      FILE_ATTRIBUTE_SYSTEM))
   {
      _tprintf_s(_T("%s\n"), (LPCTSTR) finder.GetFileName());
   }
}

Voir aussi

CObject Classe
Graphique hiérarchique
CFtpFileFind Classe
CGopherFileFind Classe
CInternetFile Classe
CGopherFile Classe
CHttpFile Classe