Fonction FtpFindFirstFileA (wininet.h)
Recherche le répertoire spécifié de la session FTP donnée. Les entrées de fichier et de répertoire sont retournées à l’application dans la structure WIN32_FIND_DATA.
Syntaxe
HINTERNET FtpFindFirstFileA(
[in] HINTERNET hConnect,
[in] LPCSTR lpszSearchFile,
[out] LPWIN32_FIND_DATAA lpFindFileData,
[in] DWORD dwFlags,
[in] DWORD_PTR dwContext
);
Paramètres
[in] hConnect
Handle vers une session FTP retournée par InternetConnect.
[in] lpszSearchFile
Pointeur vers une chaîne null-terminated qui spécifie un chemin d’accès de répertoire ou un nom de fichier valide pour le système de fichiers du serveur FTP. La chaîne peut contenir des caractères génériques, mais aucun espace vide n’est autorisé. Si la valeur de lpszSearchFile est NULL ou s’il s’agit d’une chaîne vide, la fonction recherche le premier fichier dans le répertoire actif sur le serveur.
[out] lpFindFileData
Pointeur vers une structure WIN32_FIND_DATA qui reçoit des informations sur le fichier ou le répertoire trouvé.
[in] dwFlags
Contrôle le comportement de cette fonction. Ce paramètre peut être une combinaison des valeurs suivantes.
INTERNET_FLAG_HYPERLINK
INTERNET_FLAG_NEED_FILE
INTERNET_FLAG_NO_CACHE_WRITE
INTERNET_FLAG_RELOAD
INTERNET_FLAG_RESYNCHRONIZE
[in] dwContext
Pointeur vers une variable qui spécifie la valeur définie par l’application qui associe cette recherche à toutes les données d’application. Ce paramètre est utilisé uniquement si l’application a déjà appelé InternetSetStatusCallback pour configurer une fonction de rappel d’état.
Valeur de retour
Retourne un handle valide pour la requête si l’énumération du répertoire a été démarrée correctement ou retourne NULL sinon. Pour obtenir un message d’erreur spécifique, appelez GetLastError. Si GetLastError retourne ERROR_INTERNET_EXTENDED_ERROR, comme dans le cas où la fonction ne trouve aucun fichier correspondant, appelez la fonction InternetGetLastResponseInfo pour récupérer le texte d’erreur étendu, comme indiqué dans Gestion des erreurs.
Remarques
Pour ftpFindFirstFile, les heures de fichier retournées dans la structure WIN32_FIND_DATA se trouvent dans le fuseau horaire local, et non dans un format UTC coordonné.
FtpFindFirstFile est similaire à la fonction FindFirstFile. Notez toutefois qu’un seul FtpFindFirstFile peut se produire à la fois dans une session FTP donnée. Les énumérations, par conséquent, sont corrélées avec le handle de session FTP. Cela est dû au fait que le protocole FTP autorise uniquement une énumération de répertoire unique par session.
Après avoir appelé FtpFindFirstFile et jusqu’à ce que InternetCloseHandle, l’application ne peut pas appeler FtpFindFirstFile à nouveau sur le handle de session FTP donné. Si un appel est effectué pour FtpFindFirstFile sur ce handle, la fonction échoue avec ERROR_FTP_TRANSFER_IN_PROGRESS. Une fois l’application appelante terminée à l’aide du handle HINTERNET retourné par ftpFindFirstFile, il doit être fermé à l’aide de la fonction InternetCloseHandle.
Après avoir commencé une énumération de répertoires avec FtpFindFirstFile, la fonction InternetFindNextFile peut être utilisée pour poursuivre l’énumération.
Étant donné que le protocole FTP ne fournit aucun moyen standard d’énumérer, certaines informations courantes sur les fichiers, telles que la date et l’heure de création de fichiers, ne sont pas toujours disponibles ou correctes. Dans ce cas, FtpFindFirstFile et InternetFindNextFile renseigner les informations indisponibles en fonction des informations disponibles. Par exemple, la création et la dernière date d’accès sont souvent identiques à la date de modification du fichier.
L’application ne peut pas appeler ftpFindFirstFile entre les appels à FtpOpenFile et InternetCloseHandle.
Comme tous les autres aspects de l’API WinINet, cette fonction ne peut pas être appelée en toute sécurité à partir de DllMain ou des constructeurs et destructeurs d’objets globaux.
Note
L’en-tête wininet.h définit FtpFindFirstFile comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | wininet.h |
bibliothèque | Wininet.lib |
DLL | Wininet.dll |