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

  1. #1
    Membre habitué
    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
    Points : 145
    Points
    145
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    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 habitué
    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
    Points : 145
    Points
    145
    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 habitué
    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
    Points : 145
    Points
    145
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    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 habitué
    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
    Points : 145
    Points
    145
    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

  7. #7
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Déjà, pour te simplifier la vie tu peux télécharger le fichier avec un WebClient plutôt qu'une FtpWebRequest. Ensuite il suffit de boucler sur les résultats de GetDirectoryListing :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub download()
            Dim user As String = "monlogin"
            Dim password As String = "monpassword"
            Dim wc as New WebClient()
            wc.Credentials = new NetworkCredentials(user, password)
            Dim baseUri = "ftp://ftp.cluster006.ovh.net/www/jdownloads/rep1/rep2/"
            Dim fileNames = GetDirectoryListing(baseUri)
            Dim localpath As String = "\\nas\repa\repb\repc\repd\"
            For Each fileName In fileNames
                Dim localFileName = System.IO.Path.Combine(localpath, fileName)
                Dim uri = baseUri + "/" + fileName
                wc.DownloadFile(uri, localFileName)
            Next
    End Sub

  8. #8
    Membre habitué
    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
    Points : 145
    Points
    145
    Par défaut
    Effectivement l emploi du webclient est plus simple a ce que je vois
    Mais la tu télécharge pas déjà les files avec la boucle for each ?

    Si c bien le cas a quoi cela sert de boucler sur le GetDirectoryListing ?

  9. #9
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Attila54 Voir le message
    Mais la tu télécharge pas déjà les files avec la boucle for each ?
    Bah oui... c'est bien ce que tu voulais, non ?

    Citation Envoyé par Attila54 Voir le message
    Si c bien le cas a quoi cela sert de boucler sur le GetDirectoryListing ?
    Je ne comprends pas ta question... GetDirectoryListing récupère la liste des noms de fichiers dans le répertoire ; la boucle prend les noms de cette liste un par un, et télécharge le fichier correspondant.

  10. #10
    Membre habitué
    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
    Points : 145
    Points
    145
    Par défaut
    Ben oui c est ce que le veux
    Je disais ca car tu disais
    ensuite il ne reste plus qu a boucler ...
    Du coup le ne comprenais pas car je voyais bien que ca bouclait déjà
    Je teste ca des demain
    Merci beaucoup

  11. #11
    Membre habitué
    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
    Points : 145
    Points
    145
    Par défaut
    Et a titre informatif puis je par exemple mettre un filemove apres le wc downloadfiles histoire de déplacer les fichiers téléchargés du rep2 du rep2 du ftp vers le rep3 du ftp ?

    Puis je aussi associer une progressbar a la séquence de téléchargement de manière a la mettre a 100% a la fin de tous les dl et non par fichier dl ?

    en tout cas merci pour ron aise et ta dispo

  12. #12
    Membre habitué
    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
    Points : 145
    Points
    145
    Par défaut
    ah erreur ici visiblement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim fileNames = GetDirectoryListing(baseUri)
    GetDirectoryLinsting n'est pas déclaré .... J'ai oublié un import ?
    Il m'embete aussi avec filename pas déclaré mais si je le déclare, en tant que string par exemple, je vais etre oblige de mettre quelque chose du genre
    dim filename as string = "le_nom_de_mon_file" non ?

  13. #13
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Attila54 Voir le message
    Et a titre informatif puis je par exemple mettre un filemove apres le wc downloadfiles histoire de déplacer les fichiers téléchargés du rep2 du rep2 du ftp vers le rep3 du ftp ?
    Oui, mais tu ne pourras pas le faire avec WebClient, il faudra une FtpWebRequest

    Citation Envoyé par Attila54 Voir le message
    Puis je aussi associer une progressbar a la séquence de téléchargement de manière a la mettre a 100% a la fin de tous les dl et non par fichier dl ?
    Bah tu connais le nombre de fichiers, tu peux facilement savoir combien tu en as traités... donc après c'est juste 100 * traités / total pour avoir le pourcentage


    Citation Envoyé par Attila54 Voir le message
    ah erreur ici visiblement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim fileNames = GetDirectoryListing(baseUri)
    GetDirectoryLinsting n'est pas déclaré .... J'ai oublié un import ?
    Bah c'est la fonction que je t'ai donné dans ma première réponse...

    Citation Envoyé par Attila54 Voir le message
    Il m'embete aussi avec filename pas déclaré mais si je le déclare, en tant que string par exemple, je vais etre oblige de mettre quelque chose du genre
    dim filename as string = "le_nom_de_mon_file" non ?
    Je pense que c'est à cause de l'erreur précédente. Comme il ne trouve pas GetDirectoryListing, il ne sait pas quel est le type de fileNames, et donc le For Each fileName in fileNames n'est pas correctement interprété

  14. #14
    Membre habitué
    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
    Points : 145
    Points
    145
    Par défaut
    Citation Envoyé par Attila54 Voir le message
    ah erreur ici visiblement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim fileNames = GetDirectoryListing(baseUri)
    GetDirectoryLinsting n'est pas déclaré .... J'ai oublié un import ?
    Il m'embete aussi avec filename pas déclaré mais si je le déclare, en tant que string par exemple, je vais etre oblige de mettre quelque chose du genre
    dim filename as string = "le_nom_de_mon_file" non ?
    Je ne comprends pas, j'ai pourtant bien mis aussi la function GetDirectoryListing a moins que je ne l'aie pas correctement adaptée

    ca me donne ca en 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
    Private Shared Function GetDirectoryListing(ByVal uri As String, ByVal 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
    et la, j'ai un souci d'argument non spécifié avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reader = New StreamReader(stream)
    et ensuite la sub que je lance sur click de mon buttondl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     Private Sub download4()
            Dim user As String = "monlogon"
            Dim password As String = "monpassword"
            Dim wc As New WebClient()
            wc.Credentials = New NetworkCredential(user, password)
            Dim baseUri = "ftp://ftp.cluster006.ovh.net/www/jdownloads/rep1/rep2/" 'URI et chemin ou je veux aller dans le ftp
            Dim fileNames = GetDirectoryListing(baseUri)
            Dim localpath As String = "\\nas\repa\repb\repc\repd\" 'chemin ou je veux dl les fichiers
            For Each filename In fileNames
                Dim localFileName = System.IO.Path.Combine(localpath, fileName)
                Dim uri = baseUri + "/" + fileName
                wc.DownloadFile(uri, localFileName)
            Next
        End Sub
    Alors j'essaye de comprendre par exemple ou est reférencé le filename et le localfilename ?

  15. #15
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Attila54 Voir le message
    et la, j'ai un souci d'argument non spécifié avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reader = New StreamReader(stream)
    Erreur de compilation ou exception lors de l'exécution ? Quel est le message exact ? En tous cas c'est bizarre, j'ai testé cette fonction avant de te l'envoyer et elle marchait...

    Alors j'essaye de comprendre par exemple ou est reférencé le filename et le localfilename ?
    Je comprends pas ta question

  16. #16
    Membre habitué
    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
    Points : 145
    Points
    145
    Par défaut
    alors voila :
    Des que j'insère le code en mode creation dans le formulaire, j'ai 3 erreurs affichées directement dans ma liste d'erreur, sans compiler ni quoi que ce soit d'autre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    reader = New StreamReader(stream)
    ==> j'ai l'erreur 1 dans la capture ci dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim fileNames = GetDirectoryListing(baseUri)
    ==> j'ai l'erreur 2 dans la capture ci dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each filename In fileNames
    ==> j'ai l'erreur 3 dans la capture ci dessous



    en esperant etre clair dans ce que je dis

  17. #17
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Bon, je comprends pas pourquoi ça fait ça, chez moi ça marche très bien

    Essaie de spécifier les types explicitement au niveau du using dans GetDirectoryListing :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            ...
            Using response As FtpWebResponse = DirectCast(request.GetResponse(), FtpWebResponse),
                     stream As Stream = response.GetResponseStream(),
                     reader As Stream = New StreamReader(stream)
     
            ...

  18. #18
    Membre habitué
    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
    Points : 145
    Points
    145
    Par défaut
    Par contre, en gardant le code initial (sans les modifs de ton dernier topic)
    Je n'ai qu'une erreur avant la compilation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim fileNames = GetDirectoryListing(baseUri)
    ==>
    argument non spécifié pour le paramètre credentials de Private Shared Function GetDirectoryListing(uri As String, credentials As system.net.ICredentials) As system.collection.generic.Ilist (of strings)
    J'ai importe Imports System.Collections.Generic pour voir .... Nada ca ne change rien

  19. #19
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Ah oui, j'avais pas fait gaffe... la méthode GetDirectoryListing prend un deuxième argument pour indiquer le user/password. Tu peux réutiliser les credentials du WebClient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim fileNames = GetDirectoryListing(baseUri, wc.Credentials)

  20. #20
    Membre habitué
    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
    Points : 145
    Points
    145
    Par défaut
    ah mince alors, je n'ai maintenant plus aucune erreur mais quand je lance un test (F5) , j'ai a cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wc.DownloadFile(uri, localFileName)
    j'ai une erreur "l'exception webexception n'a pas ete gérée"

    En regardant la valeur de localfilename en pas a pas, j'ai comme valeur "\\nas\repa\repb\repc\repd\" soit localpath

    et en regardant l'exception en entier, ca me dit
    InnerException: System.UnauthorizedAccessException
    Message=L'accès au chemin d'accès '\\nas\commun\ASSISTANTS\ISOVISION\NEW_TREATMENTS' est refusé.
    Source=mscorlib
    StackTrace:
    à System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
    à System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
    à System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
    à System.Net.WebClient.DownloadFile(Uri address, String fileName)
    j'ai tente de changer le chemin d'acces par quelque chose de simple, idem donc ce n'est pas un souci de droits

    j'ai essaye d'aller au maximum de mes connaissances (c'est a dire pas loin ) mais la je ne comprends pas.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

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