Lister les fichiers d'un sreveur FTP

matheonimbus30 Messages postés 60 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 11 avril 2012 - 24 déc. 2009 à 14:34
matheonimbus30 Messages postés 60 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 11 avril 2012 - 24 déc. 2009 à 22:25
Salut,
Je suis entrin de faire un application qui upload des fichiers sur un seveur ftp , pour cela j'utikise chilkat,car c'est asser facile d'utilisation (je debute en vb2008).
J'aimerai maintenant afficher dans une listbox tous les fichiers présents sur le serveur ftp.
Je ne demande pas forcémént d'utiliser chilkat, tout code ou exemple... sera le bienvenue .
MErci d'avance a+

3 réponses

Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
24 déc. 2009 à 14:59
salut
l'api FtpGetFile fait sa
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 déc. 2009 à 16:55
Salut
Si tu établis une vraie connexion FTP, il te reste les commandes du protocole FTP <exemples> : CD, LCD, LS, ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
matheonimbus30 Messages postés 60 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 11 avril 2012
24 déc. 2009 à 22:25
Bonsoir,
J'ai finalament utilisé ce code pour uploader mes fichiers :
Private Sub uploadFichier(ByVal cheminSource As String, _
                              ByVal urlDestination As String, _
                              ByVal identifiant As String, _
                              ByVal motDePasse As String)
        ' cheminSource : Uri du fichier sur le disque dur
        ' urlDestination : Uri du fichier de destination sur le serveur FTP
        ' identifiant : login du compte FTP utilisé
        ' motDePasse : mot de passe du compte FTP utilisé
        Dim monUriFichierLocal As System.Uri = Nothing
        Dim monUriFichierDistant As System.Uri = Nothing
        ' Vérification de la validité de l'Uri de l'emplacement du fichier source
        If Not (monUriFichierLocal.Scheme = Uri.UriSchemeFile) Then
            MessageBox.Show("Le chemin du fichier local n'est pas valide !", "Une _
             erreur est survenue", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            Exit Sub
        End If
        ' Vérification de la validité de l'Uri de l'emplacement du fichier de destination
        If Not (monUriFichierDistant.Scheme = Uri.UriSchemeFtp) Then
            MessageBox.Show("Le chemin du fichier sur le serveur FTP n'est pas _
            valide !", "Une erreur est surevnue", MessageBoxButtons.OK, _
            MessageBoxIcon.Warning)
            Exit Sub
        End If
        ' Création des 2 flux et du reader nécessaire pour l'envoi du fichier
        Dim monRequestStream As Stream = Nothing
        Dim fileStream As FileStream = Nothing
        Dim uploadResponse As FtpWebResponse = Nothing
        Try
            ' Requête d'upload d'un fichier vers le serveur
            Dim uploadRequest As FtpWebRequest = CType(WebRequest_
                                 .Create(urlDestination), FtpWebRequest)
            ' Vérification de la présence des identifiants d'un compte, si aucun alors
            ' la connexion se fait en mode anonyme
            If Not identifiant.Length = 0 Then
                Dim monCompte As New NetworkCredential(identifiant, motDePasse)
                uploadRequest.Credentials = monCompte
            End If
            uploadRequest.Method = WebRequestMethods.Ftp.UploadFile
            ' Désactivation du proxy http incompatible avec cette requête
            uploadRequest.Proxy = Nothing
            monRequestStream = uploadRequest.GetRequestStream()
            fileStream = File.Open(cheminSource, FileMode.Open)
            ' Tableau d'octets qui va contenir les données issues du fichier
            Dim buffer(1024) As Byte
            Dim bytesRead As Integer
            ' Lecture des données et envoi de celle-ci dans le flux
            While True
                bytesRead = fileStream.Read(buffer, 0, buffer.Length)
                If bytesRead = 0 Then
                    Exit While
                End If
                ' Ecriture des données dans le flux d'upload vers le serveur FTP
                monRequestStream.Write(buffer, 0, bytesRead)
            End While
            'L'objet requestStream dot être fermé avant de récupérer la réponse
            monRequestStream.Close()
            uploadResponse = CType(uploadRequest.GetResponse(), FtpWebResponse)
            MessageBox.Show("Upload terminé.")
            ' Gestion des exceptions
        Catch ex As UriFormatException
            MessageBox.Show(ex.Message)
        Catch ex As WebException
            MessageBox.Show(ex.Message)
        Catch ex As IOException
            MessageBox.Show(ex.Message)
        Finally
            ' Fermeture des différents flux utilisés
            If uploadResponse IsNot Nothing Then
                uploadResponse.Close()
            End If
            If fileStream IsNot Nothing Then
                fileStream.Close()
            End If
            If monRequestStream IsNot Nothing Then
                monRequestStream.Close()
            End If
        End Try
    End Sub

Mais sa bloque a
If Not (monUriFichierLocal.Scheme = Uri.UriSchemeFile) Then

Le message d'erreur dit :"La référence d'objet n'est pas définie à une instance d'un objet."
J'ai trouvé ce code ici : Lien
(et j'ai aussi utilisé le code présent sur la page pour lister mes fichiers.)
Auriez vous une solution ?
Merci d'avance a+
0
Rejoignez-nous