none
Tout les fichiers d'un dossier RRS feed

  • Question

  • Bonjour,

    Je cherche a faire ceci :

    Je selectionne un dossier et tout les fichiers type .XLS sont envoyé dans un tableau, j'ai un début de code, je n'ai pas d'erreur mais mon tableau ne se remplit pas non plus !

    Voici le code de départ :

            Dim Ouvrir As New FolderBrowserDialog
            Dim result? As Boolean = Ouvrir.ShowDialog()
            TextBox1.Text = Ouvrir.SelectedPath
            Dim Chemin = Ouvrir.SelectedPath
            For Each sFileName As String In System.IO.Directory.GetFiles(Chemin)
                If System.IO.Path.GetExtension(sFileName) = ".XLS" Then
                    Principal.DataGridView1.Rows.Add(sFileName)
                End If
            Next

    lundi 26 mai 2014 12:49

Réponses

Toutes les réponses

  • Bonjour, 

    Utilisez plutôt le framework : 

    ForEach sFileName As String In Directory.GetFiles(Chemin, "*.xls")

    Principal.DataGridView1.Rows.Add(sFileName)

    Plus d'infos sur http://msdn.microsoft.com/fr-fr/library/wz42302f(v=vs.110).aspx

    Cordialement,


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.


    • Modifié BEAUGRAND Kevin lundi 26 mai 2014 13:37
    • Proposé comme réponse Aurel Bera lundi 26 mai 2014 13:58
    • Marqué comme réponse Tom57000 mardi 27 mai 2014 09:05
    lundi 26 mai 2014 13:20
  • Bonjour, Merci pour la reponse...

    Mais ça ne permets toujours pas de remplir le tableau

    Toujours pas d'erreur a signaler

    lundi 26 mai 2014 13:41
  • Bonjour, 

    Si vous enlevez le filtre sur l'extension de fichier, obtenez-vous des fichiers ?

    Cordialement, 


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    lundi 26 mai 2014 13:53
  •         For Each sFileName As String In Directory.GetFiles("c:\")
                Principal.DataGridView1.Rows.Add(False, sFileName)
            Next

    Si je fait comme ça, j'ai des fichiers qui se trouve a la racine c:\...  Et pas les fichiers du dossier que je selectionne.

    D'ailleurs, j'avais une colonne de checkbox, d'ou le "False, sFileName".

    lundi 26 mai 2014 13:59
  • Bonjour, 

    Je venais de vous donner un exemple, il ne s'agit pas d'une réponse a prendre en compte à la lettre.

    Dans votre cas, il s'agit d'utiliser : 

    ForEach sFileName As String In Directory.GetFiles(Chemin, "*.xls")

    Principal.DataGridView1.Rows.Add(False, sFileName)

    Cordialement, 


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    lundi 26 mai 2014 14:18
  • Bonjour !

    Effectivement, j'avais mal compris !

    ça marche, sauf que cela me donne le chemin complet pour chaque fichier, il y a une solution simple pour avec que le nom du .XLS ??

    mardi 27 mai 2014 06:56
  • Bonjour

    Une idée peut-être bête: l’extension .xls n'est plus utilisée depuis Office 2003, sauf erreur de ma part. Vous êtes sur de ne pas avoir des fichiers .xlsX qui sont utilisées avec les versions Excel actuelles?

    Bien cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 27 mai 2014 06:58
  • Effectivement Aurel, A partir des Packs offices 2007, On parle de .Xlsx. Mais vu que je travaille avec Excel 2003. J'ai bien des .xls :)

    Le programme proposé marche, sauf qu'il récupère " c\: ....\...\...\..\Test.xls"

    Et j'aimerais pouvoir juste récupérer "Test.xls" C'est possible ?

    J'avais pensé faire du découpage avec Split.. Mais vu qu'après faut que ça marche dans n'importe quel situation, j'peux pas utiliser split du fait que le chemin d'acces peut changer très souvent ^^

    mardi 27 mai 2014 07:04
  • Bonjour, 

    Si vous ne voulez avoir que le nom du fichier, vous pouvez remplacer ceci :

    Directory.GetFiles(Chemin, "*.xls")

    par

    Directory.GetFiles(Chemin, "*.xls").Select(x => x.Path.GetFileName(x))

    Ceci ne vous retournera que les noms de fichier.

    Cordialement,


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    mardi 27 mai 2014 07:15
  • Je ne comprends pas comment marche le Select, le "x" corresponds a quoi ? c'est le nom du fichier ? Si oui, cette technique n'est pas possible dans mon cas, je ne dois pas coder ça "en dur"
    mardi 27 mai 2014 07:27
  • Désolé, 

    il s'agit d'une expression lambda. Plus d'infos sur http://msdn.microsoft.com/fr-fr/library/bb397687.aspx

    Pour utiliser ce code, vous devez ajouter la directive using System.Linq;

    Le x dans mon exemple correspond au path du fichier.

    Pour que ce code soit plus compréhensible pour vous, vous pouvez le remplacer par : 

    Directory.GetFiles(Chemin, "*.xls").Select(file => x.Path.GetFileName(file))

    En fait, cela pourrait être traduit par un code standard comme ceci : 

    var files = new List<String>();

    foreach(var file in Directory.GetFiles(Chemin, "*.xls"))

    files.Add(Path.GetFileName(file));

    Cordialement,


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    mardi 27 mai 2014 07:38
  • Je ne fais pas du C# mais du vb.net :x
    mardi 27 mai 2014 07:51
  • Quelle Tragedie ce VB.NET.

    Pour les expression lambda en VB.NET voici les infos : 

    http://msdn.microsoft.com/fr-fr/library/bb531253.aspx

    Voici le résultat en VB.NET : 

    Directory.GetFiles(Chemin,"*.xls").Select(Func (x) x.Path.GetFileName(x))

    Cordialement,


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    mardi 27 mai 2014 08:19
  • Bah ça ne marche pas plus, toujours dans la liste des erreurs, il doit y avoir un truc qui m'echappe
    mardi 27 mai 2014 08:28
  • Oups, 

    Une petite erreur s'est glissée : 

    Directory.GetFiles(Chemin,"*.xls").Select(Func (x) Path.GetFileName(x))

    Cordialement,


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    mardi 27 mai 2014 08:38
  • Je crois que vous allez me tuer, mais ça ne marche toujours pas ...
    mardi 27 mai 2014 08:55
  • Merci de nous redonner votre exemple de code.


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    mardi 27 mai 2014 09:03
  • Principal.DataGridView1.Rows.Add(False, Path.GetFileName(sFileName))  

    Voila j'ai trouvé par pur hasard ^^

    Encore merci d'avoir passé du temps la dessus ! Merci !

    • Marqué comme réponse Tom57000 mardi 27 mai 2014 09:04
    mardi 27 mai 2014 09:03