Partager via


CFtpFileFind, classe

Contribue à la recherche des fichiers Internet sur les serveurs FTP.

Syntaxe

class CFtpFileFind : public CFileFind

Membres

Constructeurs publics

Nom Description
CFtpFileFind ::CFtpFileFind Construit un objet CFtpFileFind.

Méthodes publiques

Nom Description
CFtpFileFind ::FindFile Recherche un fichier sur un serveur FTP.
CFtpFileFind ::FindNextFile Poursuit une recherche de fichiers à partir d’un appel précédent à FindFile.
CFtpFileFind ::GetFileURL Obtient l’URL, y compris le chemin d’accès, du fichier trouvé.

Notes

CFtpFileFind inclut les fonctions membres qui commencent une recherche, recherchent un fichier et retournent l’URL ou d’autres informations descriptives sur le fichier.

D’autres classes MFC conçues pour internet et les fichiers locaux recherchés incluent CGopherFileFind et CFileFind. CFtpFileFindAvec , ces classes fournissent un mécanisme transparent pour que le client recherche des fichiers spécifiques, quel que soit le protocole serveur ou le type de fichier (un ordinateur local ou un serveur distant). Il n’existe aucune classe MFC pour la recherche sur les serveurs HTTP, car HTTP ne prend pas en charge la manipulation directe des fichiers requis pour les recherches.

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

Exemple

Le code suivant montre comment énumérer tous les fichiers dans le répertoire actif du serveur FTP.

// create a session object to initialize WININET library
// Default parameters mean the access method in the registry
// (that is, set by the "Internet" icon in the Control Panel)
// will be used.

CInternetSession sess(_T("My FTP Session"));

CFtpConnection *pConnect = NULL;

try
{
   // Request a connection to ftp.microsoft.com. Default
   // parameters mean that we'll try with username = ANONYMOUS
   // and password set to the machine name @ domain name
   pConnect = sess.GetFtpConnection(_T("ftp.microsoft.com"));

   // use a file find object to enumerate files
   CFtpFileFind finder(pConnect);

   // start looping
   BOOL bWorking = finder.FindFile(_T("*"));

   while (bWorking)
   {
      bWorking = finder.FindNextFile();
      _tprintf_s(_T("%s\n"), (LPCTSTR)finder.GetFileURL());
   }
}
catch (CInternetException *pEx)
{
   TCHAR sz[1024];
   pEx->GetErrorMessage(sz, 1024);
   _tprintf_s(_T("ERROR!  %s\n"), sz);
   pEx->Delete();
}

// if the connection is open, close it
if (pConnect != NULL)
{
   pConnect->Close();
   delete pConnect;
}

Hiérarchie d'héritage

CObject

CFileFind

CFtpFileFind

Spécifications

En-tête : afxinet.h

CFtpFileFind ::CFtpFileFind

Cette fonction membre est appelée pour construire un CFtpFileFind objet.

explicit CFtpFileFind(
    CFtpConnection* pConnection,
    DWORD_PTR dwContext = 1);

Paramètres

pConnection
Pointeur vers un objet CFtpConnection. Vous pouvez obtenir une connexion FTP en appelant CInternetSession ::GetFtp Connecter ion.

dwContext
Identificateur de contexte de l’objet CFtpFileFind . Pour plus d’informations, consultez les remarques suivantes.

Notes

La valeur par défaut de dwContext est envoyée par MFC à l’objet CFtpFileFind à partir de l’objet CInternetSession qui a créé l’objet CFtpFileFind . Vous pouvez remplacer la valeur par défaut pour définir l’identificateur de contexte sur une valeur de votre choix. L’identificateur de contexte est retourné à CInternetSession ::OnStatusCallback pour fournir l’état sur l’objet avec lequel il est identifié. Pour plus d’informations sur l’identificateur de contexte, consultez l’article Sur Internet First Steps : WinInet .

Exemple

Consultez l’exemple dans la vue d’ensemble de la classe plus haut dans cette rubrique.

CFtpFileFind ::FindFile

Appelez cette fonction membre pour rechercher un fichier FTP.

virtual BOOL FindFile(
    LPCTSTR pstrName = NULL,
    DWORD dwFlags = INTERNET_FLAG_RELOAD);

Paramètres

pstrName
Pointeur vers une chaîne contenant le nom du fichier à rechercher. Si la valeur EST NULL, l’appel effectue une recherche générique carte (*).

dwFlags
Indicateurs décrivant comment gérer cette session. Ces indicateurs peuvent être combinés avec l’opérateur OR au niveau du bit (|) et sont les suivants :

  • INTERNET_FLAG_RELOAD Récupérez les données à partir du câble même si elles sont mises en cache localement. Il s’agit de l’indicateur par défaut.

  • INTERNET_FLAG_DONT_CACHE Ne ayez pas en cache les données, localement ou dans des passerelles.

  • INTERNET_FLAG_RAW_DATA Remplacez la valeur par défaut pour retourner les données brutes ( WIN32_FIND_DATA structures pour FTP).

  • INTERNET_FLAG_SECURE Sécurise les transactions sur le réseau avec Secure Sockets Layer ou PCT. Cet indicateur s’applique uniquement aux requêtes HTTP.

  • INTERNET_FLAG_EXISTING_CONNECT Si possible, réutilisez les connexions existantes au serveur pour les nouvelles FindFile demandes au lieu de créer une nouvelle session pour chaque requête.

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 Win32 GetLastError.

Notes

Après avoir appelé FindFile pour récupérer le premier fichier FTP, vous pouvez appeler FindNextFile pour récupérer les fichiers FTP suivants.

Exemple

Consultez l’exemple précédent de cette rubrique.

CFtpFileFind ::FindNextFile

Appelez cette fonction membre pour poursuivre une recherche de fichiers commencée avec un appel à la fonction membre 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 Win32 GetLastError. 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 cette fonction au moins une fois avant d’appeler une fonction d’attribut (voir CFileFind ::FindNextFile).

FindNextFile encapsule la fonction Win32 FindNextFile.

Exemple

Consultez l’exemple ci-dessus dans cette rubrique.

CFtpFileFind ::GetFileURL

Appelez cette fonction membre pour obtenir l’URL du fichier spécifié.

CString GetFileURL() const;

Valeur de retour

Fichier et chemin d’accès du localisateur de ressources universels (URL).

Notes

GetFileURL est similaire à la fonction membre CFileFind ::GetFilePath , sauf qu’elle fournit le résultat au format d’URL. Comme avec CFileFind::GetFilePath, le résultat n’inclut pas le nom de fichier. Par exemple, file1.txt situé dans les //moose/dir/file1.txt: retours ftp://moose/dir/.

Voir aussi

CFileFind, classe
Graphique hiérarchique
CGopherFileFind, classe
CInternetFile, classe
CGopherFile, classe
CHttpFile, classe