Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TRANSFERT DE FICHIER EN FTP AVEC VB.NET


Information sur la source

Catégorie :Réseau & Internet Source .NET ( DotNet ) Niveau : Débutant Date de création : 15/01/2003 Date de mise à jour : 15/04/2004 18:41:02 Vu / téléchargé: 24 109 / 4 917

Note :
8,5 / 10 - par 4 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (35)
Ajouter un commentaire et/ou une note

Description

Toutes les classe VB.NET nécessaire pour le transfert et fichiers via FTP. Un petit programme exemple, montre déjà le plus simplement possible comment faire un Upload et un Download. Voir la copie du code si dessous. Dans l'exemple le serveur, user et password dont fictif.
 

Source

  • ' Paramètrage de la connexin
  • Client.Hostname = "ftp.yahoo.com"
  • Client.Username = "michel"
  • Client.Password = "password"
  • ' Connexion au serveur
  • Client.Connect()
  • ' Vérification si bien connecté
  • If Not Client.IsConnected Then
  • msgBox("Error")
  • Else
  • ' Download du fichier
  • If Client.DownloadFile("index.htm", "c:\tmp1\index.htm") Then
  • MsgBox("OK")
  • Else
  • MsgBox("Error")
  • End If
  • ' Ipload du fichier sur un autre nom
  • If Client.UploadFile("c:\tmp1\index.htm", "test.htm") Then
  • MsgBox("OK")
  • Else
  • MsgBox("Error")
  • End If
  • End If
' Paramètrage de la connexin
        Client.Hostname = "ftp.yahoo.com"
        Client.Username = "michel"
        Client.Password = "password"

        ' Connexion au serveur
        Client.Connect()

        ' Vérification si bien connecté
        If Not Client.IsConnected Then
            msgBox("Error")
        Else
            ' Download du fichier
            If Client.DownloadFile("index.htm", "c:\tmp1\index.htm") Then
                MsgBox("OK")
            Else
                MsgBox("Error")
            End If
            ' Ipload du fichier sur un autre nom
            If Client.UploadFile("c:\tmp1\index.htm", "test.htm") Then
                MsgBox("OK")
            Else
                MsgBox("Error")
            End If
        End If

Conclusion

N'hésité pas à me faire vos remarques.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de hvb le 15/01/2003 17:23:02

encore un truc à regarder ce soir (le code que tu as posté sur la page, est il reelement utile de le laisser vu qu'il y

signaler à un administrateur
Commentaire de hvb le 15/01/2003 17:23:10

encore un truc à regarder ce soir (le code que tu as posté sur la page, est il reelement utile de le laisser vu qu'il y a le zip? vu que seul, il n'a pas grand interet....

signaler à un administrateur
Commentaire de michelsto le 15/01/2003 17:27:31

Je trouve cet exemple parlant. Pour montrer que l'utilisation des classe ne nécessite pas de codes fastidieux.

signaler à un administrateur
Commentaire de chrisnet le 22/03/2003 11:52:49

Salut a tous,
Je ne comprend pas pourquoi lorsque je telecharge un fichier, il est sauvegarde vide sur mon disque (free est mon hebergeur).
Merci

signaler à un administrateur
Commentaire de stranix le 22/04/2003 15:14:37

Ce petit client ftp est vraiment génial.
J'ai cependant 2 problèmes: lorsque j'envoie un fichier avec un caractère accentué, il me le remplace par des caractères incohérents et si la connexion coupe en plein transfert de fichier, le programme plante... comment faire pour éviter ces 2 problèmes ?

Gilles.

signaler à un administrateur
Commentaire de stranix le 14/05/2003 09:09:21

Bon programme ftp, le probleme des accents a été résolu en utilisant l'encodage UTF8. Mais il reste malgré tout le problème du plantage de l'appli lorsque la connexion réseau coupe au beau milieu d'un téléchargement... je bute sur ce problème...

signaler à un administrateur
Commentaire de stranix le 16/05/2003 13:26:55

Il y a donc personne sur ce site pour répondre à ma question ??????

signaler à un administrateur
Commentaire de JTR le 28/05/2004 17:12:36

Euuuuu ...
Est-ce que la fonctionnalité GetDirectoryListing est bien implémentée ?
Parce que dès que j'essaye de l'utiliser il me fait une exception ...
Reférence nulle ou un truc du genre :(
Il me retourne un tableau de FileItem je crois ...
J'essaye de faire un "for each" dessu mais ca marche poa :(
Je fais p-e une erreur de code, je suis plus penché sur le C# moi maintenant :(
Mais je crois que l'erreur se fait dès que j'appelle la méthode GetDirectoryListing() ...
Est-ce qu'il faut définir le Workdir avant ? si oui, comment ?  g déjà essayé et celà ne semble pas fonctionner :(
Merci d'avance.

signaler à un administrateur
Commentaire de michelsto le 31/05/2004 15:13:15

Je ne sais pas vous répondre comme ca. J'ai globalisé du code glané à gauche et à droite avec du mien et voilà. Pour mon utilisation ca fonctionne, mais je n'ai pas encore tout testé.

Pour le plantage, j'ai u le même problème et en fait il reste bloqué en attente d'uné réponse. Et je croix que le délais d'attente est infini. Mais je ne suis plus très sûre. Fait peut-être un débug pour voir l'endroit ou il reste bloqué, mais de toutes façons quand j'ai un moment je regarde.

Désolé de ne pas avoir répondu j'était submergé par d'autres chose.

Mich.

signaler à un administrateur
Commentaire de capuccino_fr le 22/06/2004 10:37:05

moi pareil: le getdirectorylisting me renvoie un listview.fileitem, que je ne peux pas utiliser. Comment faire?
Sinon ca marche pas trop mal... et j'en ai cherché des trucs de ce genre

@+
Ben

signaler à un administrateur
Commentaire de KGO44 le 01/03/2005 10:35:04

j'ai fais plusieurs tests pour utiliser getdirectorylisting sans succès, à chaque fois j'ai une liste vide.

Sinon ça marche très bien.

Kat

signaler à un administrateur
Commentaire de Halobox le 18/04/2005 22:02:45

Personne arrive a avoir la liste des fichiers ?

signaler à un administrateur
Commentaire de jullouyot_46 le 10/10/2005 12:03:39

Bonjour,

- J'ai le même problème que chrisnet: (je suis pour l'instant en réseau local) quand je télécharge index.htm, il est sauvegardé vide sur mon poste.
- l'appli me dit que l'upload a fonctionné, mais pas de traces de test.htm...

Avez vous trouvé la cause de ce soucis ?
merci

signaler à un administrateur
Commentaire de jullouyot_46 le 10/10/2005 16:57:19

ok, j'ai fait une petite boulette: oubli d'autoriser sur mon serveur ftp le download et le upload pour mon utilisateur ... oups.

Avez vous des pistes pour le cryptage des données transférées ?

signaler à un administrateur
Commentaire de jullouyot_46 le 10/10/2005 16:57:39

ok, j'ai fait une petite boulette: oubli d'autoriser sur mon serveur ftp le download et le upload pour mon utilisateur ... oups.

Avez vous des pistes pour le cryptage des données transférées ?

signaler à un administrateur
Commentaire de winny68 le 15/01/2006 18:51:27

le code fonctionne très bien pour les images, je n'arrive pas à la faire fonctionner pour des archives .zip ou d'autre documents

signaler à un administrateur
Commentaire de OneHacker le 18/02/2006 17:00:00

C'est bien joli tout ca mais encore faut-il que Clien signifie qelquechose !

signaler à un administrateur
Commentaire de ronaldinho99 le 22/03/2006 11:24:03

Est-il possible d'eviter le freeze des fenetres lorsque l'apli est en phase de telechargement?

signaler à un administrateur
Commentaire de JTR le 22/03/2006 13:04:44

C'est possible en effet ...
Tu peux modifier le code source pour lancer la portion de code qui fige dans un thread, ca règlera le problème je pense ;)

signaler à un administrateur
Commentaire de TMONOD le 25/05/2006 22:26:42

- J'implémente ces classes tres pratiques dans un projet que je vais bientôt présenter sur ce site.

Remarques :
- Si vous compilez sous la version .net vous aurez 2 warnings :
à la compilation de la classe Ftpconnection.vb
il faut remplacer les 2 occurences de la fonction Resolve(...) qui est obsolète par la fonction gethostentry(...).
- La remarque du thread est judicieuse...je vais la mettre en pratique tout de suite. Venez voir ma source dés qu'elle sera dispo (dans qq jours) je pense que ca peu dépanner certains d'entre nous !
A+

signaler à un administrateur
Commentaire de DocPhiphi le 05/11/2006 13:27:16

Heuh... pour STranix. Tu fais comment pour l'utf8. J'ai pas trouvé, et j'ai le pb.

signaler à un administrateur
Commentaire de DocPhiphi le 05/11/2006 18:07:35

précision, mes sites osnt chez Free...

signaler à un administrateur
Commentaire de ronaldinho99 le 07/11/2006 00:44:57

Pour infos j'ai essayer a l'epoque de faire fonctionner les threads. Mais le freeze etait toujours présent.

J'ai résolu ce probleme par l'intermediare de la fonction :

System.Windows.Forms.Application.DoEvents()

a placer avant le transfert.... :D

signaler à un administrateur
Commentaire de OneHacker le 07/11/2006 16:24:31

T'aurai pu préciser au départ et me dire que c'était du VB.Net 2005 quand j'ai posé une question !

Redman

signaler à un administrateur
Commentaire de simki le 10/12/2006 19:39:54

bonjour, j'essaie de créer une application d'exange de fichiers avec Visual basic Express 2005 mais le problème c'est que je ne peut pas faire une connection Client/Serveur.
plus clairement je ne sais pas comment le faire.
Voilà alors si quelqu'un peut m'aider ça sera trés gentille de sa part.
SIMKI

signaler à un administrateur
Commentaire de alanu le 27/02/2007 13:13:46

Pour le problème du GetListDirectory() qui renvoie Nothing , c'est parce qu'il faut avant faire un GetList() qui renverra True ou False (True si tout s'est bien passé)
Ensuite on peut utiliser GetListDirectory()

[...]
ftpclient.GetList()
Dim listes() AS FilteItem = ftpclient.GetDirectoryListing()
[...]

listes(0).FileTitle renverra un String correspondant au nom du fichier 0 listé...

Pour lister tous les fichiers :
for i As Int32=0 to 10
   System.Diagnostics.WriteLine(listes(0).FileTitle)
next

:)

signaler à un administrateur
Commentaire de tiwanou le 25/11/2007 19:27:47

Bravo merci génial magnifique
Enfin un code qui MARCHE
Quelle galère avec VB 2008
Bon maintenant voyons voir ce code !
MERCI ENCORE

signaler à un administrateur
Commentaire de Le newbie le 15/04/2008 10:18:19

Bonjour,

Je sais que le poste commence à dater mais je cherche à utiliser le protocole FTP avec les classes ci-dessus. Je suis en VB2008 (Framework 3.5) et la classe cNetwork me retourne 3 erreurs.
Il ne reconnaît pas le system.management.managementObejctsearcher, managementObjectCollection et managementObject.

Est ce qu'il  a quelqu'un qui saurait comment faire ?

Merci d'avance.

signaler à un administrateur
Commentaire de dsigmoun le 15/10/2008 15:33:05


for i As Int32=0 to 10
   System.Diagnostics.WriteLine(listes(0).FileTitle)
next


Visual Studio 2008 me retourne "WriteLine" n'est pas un membre de "Diagnostic".

Qu'est-ce que je dois mettre pour lister les fichiers ?
Merci d'avance pour votre aide,

signaler à un administrateur
Commentaire de dsigmoun le 24/10/2008 15:44:57

Est-il possible d'avoir un retour sur la taille du fichier en téléchargement ainsi que l'information de ce qui a déjà été téléchargé ?
exemple : 1Mo / 15Mo

Merci,

signaler à un administrateur
Commentaire de mstassenp le 25/10/2008 20:05:35

Bonjour, je m'inspire fortement de cette source mais je bloque sur la possibilité de faire un "append". Je voudrais pouvoir alimenter un journal des connexions sur le serveur à partir des différents pc qui tournent avec mon programme. Merci d'avance.
Michel.

signaler à un administrateur
Commentaire de michelsto le 26/10/2008 11:46:56

Bonjour à  tous, Je suis vraiment désolé de ne plus pouvoir vous aider, j'ai laissé tomber complètement VB et je serais incapable de vous aider.

signaler à un administrateur
Commentaire de dsigmoun le 27/10/2008 12:36:47

Pour ceux que cela interresse, voici la solution pour récupérer ce qui a déjà été téléchargé :
Point de départ existance d'un label43 dans la form3

Allez dans le fichier dataconnection.vb
Dans la partie Public Sub ReceiveFromSocket()
Dim valeur As Integer
.
.
.
If Ret > 0 Then
                    If m_DownloadToFile Then
                        System.Windows.Forms.Application.DoEvents()
                        m_FileStream.Write(Buffer, 0, Ret)
                    Else
                        m_Data = m_Data + ASCII.GetString(Buffer, 0, Ret)
                    End If
                    System.Windows.Forms.Application.DoEvents()
                    valeur = CInt(m_TransferredBytes / 1024)
                    Form3.Label43.Text = CStr(valeur) & " Ko / "
                    m_TransferredBytes = m_TransferredBytes + Ret
                    RaiseEvent DataReceived(Ret)
.
.
.
Il manque encore la partie informant de la taille du fichier en cours de téléchargement.

signaler à un administrateur
Commentaire de dsigmoun le 28/10/2008 17:33:39

Quelqu'un sait-il comment annuler un transfert en cours.
Lorsque j'utilise client.disconnect() j'ai la fenêtre qui freeze.

signaler à un administrateur
Commentaire de Maneavel le 16/12/2008 06:35:24 10/10

Très bon code.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,156 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.