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 :

Lister le contenant d'un répertoire dans une lisBox


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Débutant
    Inscrit en
    Septembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Débutant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 25
    Par défaut Lister le contenant d'un répertoire dans une lisBox
    Bonjour à tous,
    Je souhaiterai faire apparaître le contenant d'un Répertoire (fichier Word) dans une listView de Visual Basic 2010. Est-ce possible, quel sont les codes?
    Cela fait pas mal de temps que je cherche et je ne trouve rien sur la toile.
    Dois-je complètement changer ma façon de concevoir la programmation?
    merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Caféinomane
    Inscrit en
    Septembre 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Caféinomane

    Informations forums :
    Inscription : Septembre 2011
    Messages : 202
    Par défaut
    Bonjour,

    Il y a un bel exemple là : http://www.java2s.com/Tutorial/VB/02...leListview.htm

  3. #3
    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 : 43
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBoxFiles.DataSource = System.IO.Directory.GetFiles("C:\ton\repertoire")

  4. #4
    Membre actif
    Homme Profil pro
    Débutant
    Inscrit en
    Septembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Débutant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 25
    Par défaut
    Je n' y arrive pas, quelqu'un aurait il un exemple simple à me proposer ?
    Merci à tous.

  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 : 43
    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 on peut difficilement faire plus simple que l'exemple que je t'ai donné... qu'est-ce qui marche pas ? Erreur de compilation ? Exception à l'exécution ? Pas de résultats ?

  6. #6
    Membre actif
    Homme Profil pro
    Débutant
    Inscrit en
    Septembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Débutant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 25
    Par défaut
    Il ne se passe rien , la liste est vide.

  7. #7
    Membre actif
    Homme Profil pro
    Débutant
    Inscrit en
    Septembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Débutant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 25
    Par défaut
    Voila mon code,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Class Form1
     
        Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
            ListBoxFiles.DataSource = System.IO.Directory.GetFiles("C:\Windows")
        End Sub
     
        Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
     
        End Sub
    End Class

  8. #8
    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 : 43
    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 si tu mets ça dans le SelectedIndexChanged, ça va se produire que quand tu vas changer l'élément sélectionné. Et comme la liste est vide, ça n'arrivera jamais...

    Il faut plutôt faire ça dans le Load de la form

  9. #9
    Membre actif
    Homme Profil pro
    Débutant
    Inscrit en
    Septembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Débutant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 25
    Par défaut
    Merci Tomlev,
    C'est bob ça marche, enfin j' y suis arrivé.
    Comment faire pour que dans la listBox apparaisse uniquement le nom du fchier sans le le chemin d'accès à la directory (C:\Blabla\blabla\blabla\[/B]test.txt ).
    Encore merci de ton aide. C' est cool.

  10. #10
    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 : 43
    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
    Citation Envoyé par Romain707 Voir le message
    Comment faire pour que dans la listBox apparaisse uniquement le nom du fchier sans le le chemin d'accès à la directory (C:\Blabla\blabla\blabla\test.txt ).
    Tu peux utiliser Path.GetFileName pour obtenir le nom du fichier à partir du chemin complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim files() As String = System.IO.Directory.GetFiles("C:\Windows")
    For i = 0 To files.Length
        files(i) = Path.GetFileName(files(i))
    Next
     
    ListBoxFiles.DataSource = files

  11. #11
    Membre actif
    Homme Profil pro
    Débutant
    Inscrit en
    Septembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Débutant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 25
    Par défaut
    Bonjour Tomlev,
    Je viens d'insérer le code dans ma load Form.
    Message erreur suivant sur la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    files(i) = Path.GetFileName(files(i))
    =>
    Variable objet ou variable d'un bloc With non définie.
    comprend pas !

  12. #12
    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 : 43
    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
    Euh, moi tu sais, la syntaxe VB.NET... c'est pas trop mon truc

    Il te manque pas un namespace ? Essaie d'ajouter Imports System.IO au début du fichier

  13. #13
    Membre actif
    Homme Profil pro
    Débutant
    Inscrit en
    Septembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Débutant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 25
    Par défaut
    J'avais déjas la déclaration "Imports System.IO" au début des ma liste.
    Fonctionne toujours pas.
    Voilà mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                 ListBox1.DataSource = Directory.GetFiles("C:\Test")
           Dim files() As String = System.IO.Directory.GetFiles("C:\Test")
           For i = 0 To files.Length
           files(i) = Path.GetFileName(files(i))
           Next
           ListBoxFiles.DataSource = files

  14. #14
    Membre émérite
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Par défaut
    Bonjour,

    Pour ton erreur je sais pas...mais déjà ta boucle ne marchera pas

    Il faut aller uniquement jusqu'à files.Lenght -1

  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 : 43
    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
    Citation Envoyé par Gurdil le nain Voir le message
    Pour ton erreur je sais pas...mais déjà ta boucle ne marchera pas

    Il faut aller uniquement jusqu'à files.Lenght -1
    Oops... pas l'habitude des boucles For en VB.NET

    A part ce petit détail, chez moi la boucle fonctionne...

  16. #16
    Membre actif
    Homme Profil pro
    Débutant
    Inscrit en
    Septembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Débutant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 25
    Par défaut
    Le code ne fonctionne pas sous Visual Basiic Express 2010 !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles MyBase.Load
            ListBox1.Items.AddRange(IO.Directory.GetFiles("C:\Test"))
            Dim files() As String = System.IO.Directory.GetFiles("C:\Test")
            For i = 0 To files.Length - 1
                'files(i) = Path.GetFileName(files(i))
            Next
            'ListBoxFiles.DataSource = files
    Quelqu'un peut-il m'aider ?

  17. #17
    Membre éprouvé
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Billets dans le blog
    2
    Par défaut
    Déjà as tu des fichiers au moins sous c:/test?
    As-tu fais le list.databind après avoir affecter tes valeur?

    Sinon voici un morceaux de code qui marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub BindFile()
            Dim CheminPhy As String = "c:\Temp"
            If My.Computer.FileSystem.DirectoryExists(CheminPhy) Then
                Dim Folder As New IO.DirectoryInfo(CheminPhy)
                rptFichier.DataSource = Folder.GetFiles
                rptFichier.DataBind()
              End If
        End Sub
    page aspx
    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
     
    <table class="TblRpt">
                            <tr class="Entete">
                                <td>
                                    Nom
                                </td>
                               </tr>
                            <asp:Repeater ID="rptFichier" runat="server">
                                <ItemTemplate>
                                    <tr>
                                        <td>
                                            <asp:Localize ID="lblNom" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Name")%>'></asp:Localize>
                                        </td>
                                     </tr>
                                </ItemTemplate>
                                <AlternatingItemTemplate>
                                    <tr>
                                        <td>
                                            <asp:Localize ID="lblNom" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Name").ToString() %>'></asp:Localize>
                                        </td>
                                        </tr>
                                </AlternatingItemTemplate>
                            </asp:Repeater>
                        </table>
    Ok c'est dans un répéteur mais tu devrais le transcrire dans une liste assez facilement en utilisant DataTextField et DataValueField à la place de mon asp:localize

  18. #18
    Membre chevronné
    Homme Profil pro
    Caféinomane
    Inscrit en
    Septembre 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Caféinomane

    Informations forums :
    Inscription : Septembre 2011
    Messages : 202
    Par défaut
    Citation Envoyé par Romain707 Voir le message
    Le code ne fonctionne pas sous Visual Basiic Express 2010 !
    Il plante, il fait une erreur à la compilation, il s'exécute mais la listview reste vide ?

    Variable objet ou variable d'un bloc With non définie.
    Bizarre comme erreur, dans la mesure où le code n'est pas dans un bloc "With"...

    Histoire d'être sûr que nous ne cherchons pas dans la mauvaise direction, est-il possible de rajouter une petite sécurité dans le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ListBox1.Items.AddRange(IO.Directory.GetFiles("C:\Test"))
            Dim files() As String = System.IO.Directory.GetFiles("C:\Test")
            if(files is nothing) then
                msgbox("Erreur : Aucun fichier !")
            else
                For i = 0 To files.Length - 1
                    files(i) = Path.GetFileName(files(i))
                Next
                ListBoxFiles.DataSource = files
            end if

  19. #19
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    files ne peut valoir Nothing, dans le cas où aucun fichier ne serait trouvé, un tableau vide serait renvoyé, la boucle ne serait donc pas exécutée et on affecterait donc un tableau vide comme DataSource, ce qui est faisable.

    De plus le AddRange en début ne sert à rien, le contenu sera effacé lors de l'affectation du DataSource.

    Cordialement !

  20. #20
    Membre chevronné
    Homme Profil pro
    Caféinomane
    Inscrit en
    Septembre 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Caféinomane

    Informations forums :
    Inscription : Septembre 2011
    Messages : 202
    Par défaut
    Tout à fait exact !

    Le code reste donc simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim files() As String = System.IO.Directory.GetFiles("C:\Test")
            For i = 0 To files.Length - 1
               files(i) = Path.GetFileName(files(i))
            Next
            ListBoxFiles.DataSource = files
    Mais la question reste entière :
    Citation:
    Envoyé par Romain707
    Le code ne fonctionne pas sous Visual Basiic Express 2010 !

    Il plante, il fait une erreur à la compilation, il s'exécute mais la listview reste vide ?

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

Discussions similaires

  1. Lister les fichiers d'un répertoire dans une feuille Excel
    Par AlainTech dans le forum Contribuez
    Réponses: 7
    Dernier message: 15/02/2025, 17h06
  2. Lister les fichiers d'un répertoire dans une listebox
    Par soshelpvb dans le forum VB.NET
    Réponses: 8
    Dernier message: 05/11/2012, 11h57
  3. Lister les fichiers d'un répertoire dans une feuille Excel
    Par Kriss63 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/04/2011, 14h54
  4. Lister un répertoire dans une fenêtre
    Par azsoundcore61 dans le forum C++Builder
    Réponses: 10
    Dernier message: 14/02/2007, 11h56

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