FtpOpenFileA, fonction (wininet.h)

Lance l’accès à un fichier distant sur un serveur FTP pour la lecture ou l’écriture.

Syntaxe

HINTERNET FtpOpenFileA(
  [in] HINTERNET hConnect,
  [in] LPCSTR    lpszFileName,
  [in] DWORD     dwAccess,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

Paramètres

[in] hConnect

Gérer vers une session FTP.

[in] lpszFileName

Pointeur vers une chaîne terminée par null qui contient le nom du fichier auquel accéder.

[in] dwAccess

Accès aux fichiers. Ce paramètre peut être GENERIC_READ ou GENERIC_WRITE, mais pas les deux.

[in] dwFlags

Conditions dans lesquelles les transferts se produisent. L’application doit sélectionner un type de transfert et l’un des indicateurs qui indiquent comment la mise en cache du fichier sera contrôlée.

Le type de transfert peut être l’une des valeurs suivantes.

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
La valeur par défaut est FTP_TRANSFER_TYPE_BINARY.
INTERNET_FLAG_TRANSFER_ASCII
Transfère le fichier au format ASCII.
INTERNET_FLAG_TRANSFER_BINARY
Transfère le fichier au format binaire.
 

Les valeurs suivantes sont utilisées pour contrôler la mise en cache du fichier. L’application peut utiliser une ou plusieurs de ces valeurs.

Valeur Signification
INTERNET_FLAG_HYPERLINK
Force un rechargement s’il n’y a pas d’heure d’expiration et qu’aucune heure LastModified n’a été retournée par le serveur pour déterminer s’il faut 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 le dernier téléchargement. 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 un handle en cas de réussite, ou NULL dans le cas contraire. Pour récupérer un message d’erreur spécifique, appelez GetLastError.

Remarques

Après l’appel de FtpOpenFile et jusqu’à l’appel d’InternetCloseHandle, tous les autres appels aux fonctions FTP sur le même handle de session FTP échouent et définissent le message d’erreur sur ERROR_FTP_TRANSFER_IN_PROGRESS. Une fois que l’application appelante a terminé d’utiliser le handle HINTERNET retourné par FtpOpenFile, elle doit être fermée à l’aide de la fonction InternetCloseHandle .

Un seul fichier peut être ouvert dans une seule session FTP. Par conséquent, aucun handle de fichier n’est retourné et l’application utilise simplement le handle de session FTP si nécessaire.

Le paramètre lpszFileName peut être un nom de fichier partiellement ou complet relatif 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 FtpOpenFile en tant qu’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. La combinaison 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