Dll pour connexion ftp

Soyez le premier à donner votre avis sur cette source.

Vue 11 663 fois - Téléchargée 1 526 fois

Description

J'ai réutilisé une DLL que j'ai piqué ailleurs (je ne sais plus où), auteur Sumeet Ahuja, que j'ai modifié en y ajoutant deux fonctions : Information et FileList.
Je m'en sers depuis plus d'un an sans bug.

A la demande générale (cf Christophe) et chose promises, chose dûe :
Voici une petite application de démo.
Je me suis appliqué à mettre un maximum de commentaires pour vous aider à comprendre et à réutiliser cette DLL.

Source / Exemple :


' All is in the zip

Conclusion :


Ouvrez le projet global (_TemplateFTP.vbg) du premier répertoire pour charger la démo ET le dll, en mode création : Vous pourrez ainsi suivre ce qui s'y passe.

Parmi les modifs, une gestion un peu compliquée du résultat de la liste des fichiers, mais très complète : Nom, Taille, Date/Heure, Type

En fait, j'ai insisté du côté des Collections. Je ne connaissais pas trop et je croyais que les Collections n'étaient que des tableaux. Or on peut y ranger des Objets. Du coup, j'ai pu y stocker les fiches d'une vingtaine de paramètres de chaque fichier.
L'utilisation en ai plus simple que de gérer des découpages de chaînes.

Vala

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
24
Date d'inscription
mardi 3 octobre 2000
Statut
Membre
Dernière intervention
15 mai 2009

Pour ceux qui veulent connaître la différence entre mode actif et passif, allez voir :

http://knol.google.com/k/yann-riviere/ftp-active-and-passive-mode/6i5b6z50f82p/2#
Messages postés
24
Date d'inscription
mardi 3 octobre 2000
Statut
Membre
Dernière intervention
15 mai 2009

En effet, j'avais omis la partie déclarative de la méthode connect qui est la suivante :

Public Function Connect(ByVal sServerName As String, _
ByVal sUserName As String, _
ByVal sPassWord As String, _
Optional ByVal bOpenPassive As Boolean = False) As Long

Concernant la méthode getFile, le flag INTERNET_FLAG_RESYNCHRONIZE n'était pas correcte puisqu'il s'agit de la gestion des attributs du fichier, c'est pourquoi il vaut mieux utiliser le flag FILE_ATTRIBUTE_NORMAL.

Voilà c'est tout, merci beaucoup pour cette DLL vraiment très pratique (à utiliser sans modération ^^)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut et merci de partagé.

Ta première modif doit faire partie d'une amélioration globale personnelle du projet permettant d'offrir le choix du mode PASSV (avec bOpenPassive) qui n'existait pas dans la source.

La seconde permet de s'affranchir de la mémoire tampon, oui.
Messages postés
24
Date d'inscription
mardi 3 octobre 2000
Statut
Membre
Dernière intervention
15 mai 2009

Bonjour,

J'ai corrigé quelques erreurs concernant deux méthodes :
Connect => connexion par défaut en mode actif (permet ou non au client de gérer le port de connexion)
GetFile => supression d'un flag et oblige l'API à retélécharger le fichier si déjà présent dans le cache)

Voici le code modifié :

'Connect To Server
If hOpen <> 0 Then
iFlags = INTERNET_FLAG_EXISTING_CONNECT Or IIf(bOpenPassive, INTERNET_FLAG_PASSIVE, 0)

iConnHandle = InternetConnect(hOpen, _
sServerName, _
INTERNET_INVALID_PORT_NUMBER, _
sUserName, _
sPassWord, _
INTERNET_SERVICE_FTP, _
iFlags, &H0)

Dans la méthode GetFile :

bRet = FtpGetFile(hConnectHandle, _
sSourceFileWithPath, _
sDestFileWithPath, _
False, _
FILE_ATTRIBUTE_NORMAL, _
lTransferType Or INTERNET_FLAG_RELOAD, _
&H0)
Messages postés
10
Date d'inscription
lundi 6 mai 2002
Statut
Membre
Dernière intervention
13 novembre 2007

Félicitation Jack, cette source est super. Jusqu'a nprésent j'utilisais l'objet Inet qui me posait de gros problème à la fermeture (très longue attente avant fermeture total du programme sur mon portable.), avec ta source, plus de problème, la fermeture est immédiate. Et de plus source très bien expliqué. Je te mets 10!
Afficher les 19 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.