Partager via


Fonction FtpGetFileA (wininet.h)

Récupère un fichier à partir du serveur FTP et le stocke sous le nom de fichier spécifié, créant ainsi un fichier local dans le processus.

Syntaxe

BOOL FtpGetFileA(
  [in] HINTERNET hConnect,
  [in] LPCSTR    lpszRemoteFile,
  [in] LPCSTR    lpszNewFile,
  [in] BOOL      fFailIfExists,
  [in] DWORD     dwFlagsAndAttributes,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

Paramètres

[in] hConnect

Gérer vers une session FTP.

[in] lpszRemoteFile

Pointeur vers une chaîne terminée par null qui contient le nom du fichier à récupérer.

[in] lpszNewFile

Pointeur vers une chaîne terminée par null qui contient le nom du fichier à créer sur le système local.

[in] fFailIfExists

Indique si la fonction doit continuer si un fichier local du nom spécifié existe déjà. Si fFailIfExists a la valeur TRUE et que le fichier local existe, FtpGetFile échoue.

[in] dwFlagsAndAttributes

Attributs de fichier pour le nouveau fichier. Ce paramètre peut être n’importe quelle combinaison des indicateurs FILE_ATTRIBUTE_* utilisés par la fonction CreateFile .

[in] dwFlags

Contrôle la façon dont la fonction gère le téléchargement du fichier. Le premier ensemble de valeurs d’indicateur indique les conditions dans lesquelles le transfert a lieu. Ces indicateurs de type de transfert peuvent être utilisés en combinaison avec le deuxième ensemble d’indicateurs qui contrôlent la mise en cache.

L’application peut sélectionner l’une de ces valeurs de type de transfert.

Valeur Signification
FTP_TRANSFER_TYPE_ASCII
Transfère le fichier à l’aide de la méthode de transfert ASCII (Type A) de FTP. Les informations de contrôle et de mise en forme sont converties en équivalents locaux.
FTP_TRANSFER_TYPE_BINARY
Transfère le fichier à l’aide de la méthode de transfert Image (Type I) de FTP. Le fichier est transféré exactement tel qu’il existe, sans aucune modification. Il s’agit de la méthode de transfert par défaut.
FTP_TRANSFER_TYPE_UNKNOWN
Par défaut, FTP_TRANSFER_TYPE_BINARY.
INTERNET_FLAG_TRANSFER_ASCII
Transfère le fichier au format ASCII.
INTERNET_FLAG_TRANSFER_BINARY
Transfère le fichier sous forme binaire.
 

Les indicateurs suivants déterminent la façon dont la mise en cache de ce fichier sera effectuée. Toute combinaison des indicateurs suivants peut être utilisée avec l’indicateur de type de transfert.

Valeur Signification
INTERNET_FLAG_HYPERLINK
Force un rechargement s’il n’y a pas d’heure d’expiration et aucune heure LastModified renvoyée par le serveur lors de la détermination de la possibilité de recharger l’élément à partir du réseau.
INTERNET_FLAG_NEED_FILE
Provoque la création d’un fichier temporaire si le fichier ne peut pas être mis en cache.
INTERNET_FLAG_RELOAD
Force le téléchargement du fichier, de l’objet ou de la liste de répertoires demandés à partir du serveur d’origine, et non à partir du cache.
INTERNET_FLAG_RESYNCHRONIZE
Recharge les ressources HTTP si la ressource a été modifiée depuis la dernière fois qu’elle a été téléchargée. Toutes les ressources FTP sont rechargées.

Windows XP et Windows Server 2003 R2 et versions antérieures : Les ressources Gopher sont également rechargées.

[in] dwContext

Pointeur vers une variable qui contient la valeur définie par l’application qui associe cette recherche à toutes les données d’application. Elle est utilisée uniquement si l’application a déjà appelé InternetSetStatusCallback pour configurer une fonction de rappel status.

Valeur retournée

Retourne LA valeur TRUE si elle réussit ou FALSE dans le cas contraire. Pour obtenir un message d’erreur spécifique, appelez GetLastError.

Remarques

FtpGetFile est une routine de haut niveau qui gère toute la comptabilité et la surcharge associées à la lecture d’un fichier à partir d’un serveur FTP et à son stockage localement. Une application qui doit récupérer des données de fichier uniquement ou qui nécessite un contrôle étroit sur le transfert de fichiers doit utiliser les fonctions FtpOpenFile et InternetReadFile .

Si le paramètre dwFlags spécifie FTP_TRANSFER_TYPE_ASCII, la traduction des données du fichier convertit les caractères de contrôle et de mise en forme en équivalents locaux. Le transfert par défaut est en mode binaire, où le fichier est téléchargé dans le même format qu’il est stocké sur le serveur.

LpszRemoteFile et lpszNewFile peuvent être des noms de fichiers partiellement ou complets par rapport au répertoire actif.

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 WinINet ne prend pas en charge les implémentations de serveur. En outre, il ne doit pas être utilisé à partir d’un service. Pour les implémentations de serveur ou les services, utilisez Microsoft Windows HTTP Services (WinHTTP).
 

Notes

L’en-tête wininet.h définit FtpGetFile comme un 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête wininet.h
Bibliothèque Wininet.lib
DLL Wininet.dll

Voir aussi

FTP Sessions

Fonctions WinINet