IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

telecharger tous les fichiers d'un dossier [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut telecharger tous les fichiers d'un dossier
    Bonjour,
    je me demandais comment je pourrais faire pour lancer le download de tous les fichiers d'un repertoire situé sur un site via ftp.
    Pour un fichier specifique, j'arrive a faire, mais pas pour tous les fichiers du rep.
    Ce rep ne contient QUE des fichiers de type .xls.
    En d'autres termes, j'ai du mal a trouver la syntaxe equivalente à "*.xls" en vb ...

    merci pour la petite astuce

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Tu peux lister le contenu du répertoire avec une méthode comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Shared Function GetDirectoryListing(uri As String, credentials As ICredentials) As IList(Of String)
    	Dim entries As New List(Of String)()
    	Dim request = DirectCast(WebRequest.Create(uri), FtpWebRequest)
    	If credentials IsNot Nothing Then
    		request.Credentials = credentials
    	End If
    	request.Method = WebRequestMethods.Ftp.ListDirectory
    	Using response = DirectCast(request.GetResponse(), FtpWebResponse),
              stream = response.GetResponseStream(),
              reader = New StreamReader(stream)
     
                Dim line As String = reader.ReadLine()
                While line IsNot Nothing
                    entries.Add(line)
                    line = reader.ReadLine()
                End While
                Return entries
     
    	End Using
    End Function
    Ensuite tu peux boucler sur les résultats et télécharger chaque fichier un par un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim baseUri = "ftp://unserveur.com/le/chemin/du/repertoire"
    Dim files = GetDirectoryListing(baseUri)
    For Each file In files
        Dim uri = baseUri & "/" & file
        ' télécharger le fichier...
     
    Next

  3. #3
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut
    merci tomlev de ta suggestion fort interessante pour un neophyte comme moi.
    Le fait de lister les fichiers m'interesse au plus haut point.

    Cela voudrait il dire que, toujours en utilisant le listage du contenu du repertoire, et en bouclant, je peux tout aussi bien par exemple deplacer les fichiers du rep vers un autre rep, ou toute autre operation?

    Tres interessant vraiment

    Merci encore

  4. #4
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut
    par contre je ne comprends pas trop bien la sequence de telechargement.
    Bon la fonction GetDirectoryListing nous retourne les fichiers présents dans le rep voulu.

    ensuite je ne sais pas trop ou et comment placer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim baseUri = "ftp://unserveur.com/le/chemin/du/repertoire"
    Dim files = GetDirectoryListing(baseUri)
    For Each file In files
        Dim uri = baseUri & "/" & file
        ' télécharger le fichier...
    Next
    merci beaucoup

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Bah moi je comprends pas trop ce que tu comprends pas

    Tu places ça à l'endroit où tu veux télécharger tous les fichiers. Je n'ai pas détaillé la façon de télécharger un fichier en particulier vu que tu as dit que tu savais faire

  6. #6
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut
    eh bien moi initialement j'avais fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     Private Sub download()
            Dim user As String = "monlogin"
            Dim password As String = "monpassword"
            Dim fileName As String = "toto.xls"
            Dim localpath As String = "\\nas\repa\repb\repc\repd\"
            Dim requestFileDownload As FtpWebRequest = DirectCast(WebRequest.Create("ftp://ftp.cluster006.ovh.net/www/jdownloads/rep1/rep2/" & fileName), FtpWebRequest)
            requestFileDownload.Credentials = New NetworkCredential(user, password)
            requestFileDownload.Method = WebRequestMethods.Ftp.DownloadFile
     
            Dim responseFileDownload As FtpWebResponse = DirectCast(requestFileDownload.GetResponse(), FtpWebResponse)
     
            Dim responseStream As Stream = responseFileDownload.GetResponseStream()
            Dim writeStream As New FileStream(localpath & fileName, FileMode.Create)
     
            Dim Length As Integer = 2048
            Dim buffer As [Byte]() = New [Byte](Length - 1) {}
            Dim bytesRead As Integer = responseStream.Read(buffer, 0, Length)
     
            While bytesRead > 0
                writeStream.Write(buffer, 0, bytesRead)
                bytesRead = responseStream.Read(buffer, 0, Length)
            End While
            responseStream.Close()
            writeStream.Close()
            requestFileDownload = Nothing
            responseFileDownload = Nothing
            Buttondl.BackColor = Color.WhiteSmoke
        End Sub
    et j'avais donc associe cette sub a click sur un buttondl. De cette maniere, je dl le fichier toto.xls depuis ftp://ftp.cluster006.ovh.net/www/jdownloads/rep1/rep2 vers \\nas\repa\repb\repc\repd\
    c'est pour ca que j'avais dit, dl un fichier avec un nom precis je sais faire.

    Mon souci c'est simplement le filename qui ne doit plus être toto.xls mais tous_les_fichiers_du_rep2.xls.

    Donc mon dl se faisait via un button dl c'est pour ca que je ne sais pas trop ou mettre le code

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Supprimer tous les fichiers d'un dossier
    Par nitrous007 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 05/09/2015, 11h17
  2. Aspirer tous les fichiers d'un dossier d'un site
    Par Ottweiler dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/07/2007, 14h08
  3. Réponses: 4
    Dernier message: 29/08/2006, 18h02
  4. Réponses: 5
    Dernier message: 18/01/2006, 14h05
  5. [LG] Accéder à tous les fichiers d'un dossier
    Par arno15 dans le forum Langage
    Réponses: 3
    Dernier message: 27/10/2005, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo