CFtpFileFind, classe
Contribue à la recherche des fichiers Internet sur les serveurs FTP.
class CFtpFileFind : public CFileFind
Nom | Description |
---|---|
CFtpFileFind ::CFtpFileFind | Construit un objet CFtpFileFind . |
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é. |
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. CFtpFileFind
Avec , 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.
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;
}
CFtpFileFind
En-tête : afxinet.h
Cette fonction membre est appelée pour construire un CFtpFileFind
objet.
explicit CFtpFileFind(
CFtpConnection* pConnection,
DWORD_PTR dwContext = 1);
pConnection
Pointeur vers un objet CFtpConnection
. Vous pouvez obtenir une connexion FTP en appelant CInternetSession ::GetFtpConnection.
dwContext
Identificateur de contexte de l’objet CFtpFileFind
. Pour plus d’informations, consultez les remarques suivantes.
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 .
Consultez l’exemple dans la vue d’ensemble de la classe plus haut dans cette rubrique.
Appelez cette fonction membre pour rechercher un fichier FTP.
virtual BOOL FindFile(
LPCTSTR pstrName = NULL,
DWORD dwFlags = INTERNET_FLAG_RELOAD);
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 (*).
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
Obtenir les données à partir du réseau, même si elles sont mises en cache localement. Il s’agit de l’indicateur par défaut.INTERNET_FLAG_DONT_CACHE
Ne pas mettre en cache les données, localement ou dans toute passerelle.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 nouvellesFindFile
demandes au lieu de créer une nouvelle session pour chaque requête.
Valeur différente de zéro cas de réussite ; sinon, 0. Pour obtenir des informations d’erreur étendues, appelez la fonction Win32 GetLastError.
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.
Consultez l’exemple précédent de cette rubrique.
Appelez cette fonction membre pour poursuivre une recherche de fichiers commencée avec un appel à la fonction membre FindFile .
virtual BOOL FindNextFile();
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.
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.
Consultez l’exemple ci-dessus dans cette rubrique.
Appelez cette fonction membre pour obtenir l’URL du fichier spécifié.
CString GetFileURL() const;
Fichier et chemin d’accès du localisateur de ressources universels (URL).
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/
.
CFileFind, classe
Graphique hiérarchique
CGopherFileFind, classe
CInternetFile, classe
CGopherFile, classe
CHttpFile, classe