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

Windows Forms Discussion :

lister les sous-repertoire


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Points : 44
    Points
    44
    Par défaut lister les sous-repertoire
    Bonjour, je debute en vb.net et j'ai un petit soucis.
    Je souhaiterai lister tout les sous repertoire d'un repertoire et placer leur nom dans un tableau. J'arrive bien a recuperer les nom des sous repertoire est a les mettre dans un string, mais pas dans un tableau.

    Voici mon code :
    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
     
            Dim nombreSousRepertoire As Integer = 0
            Dim tableauRep() As String
            Dim liste As String = ""
            Dim s As DirectoryInfo
            Dim cheminFichierVehicule As String = Environ("USERPROFILE")
            cheminFichierVehicule = cheminFichierVehicule & "\vehicules\vehicules.txt"
     
     
            Vehicule.repertoire = Environ("USERPROFILE")
            Vehicule.repertoire = Vehicule.repertoire & "\vehicules\"
            Dim di As New DirectoryInfo(Vehicule.repertoire)
            Dim diArr As DirectoryInfo() = di.GetDirectories()
     
            Dim monStreamWriter As StreamWriter
            monStreamWriter = New StreamWriter(cheminFichierVehicule)
     
            If Directory.Exists(Vehicule.repertoire) Then
                For Each s In diArr
                    tableauRep(nombreSousRepertoire) = s.Name
                    liste = liste & "/" & s.Name
                    nombreSousRepertoire = nombreSousRepertoire + 1
                Next s
                Label1.Text = liste
            Else
                Label1.Text = "Vous n'avez aucun véhicule d'enregistrer"
            End If
    l'erreur est sur la ligne tableauRep(nombreSousRepertoire) = s.Name

    merci de votre aide

  2. #2
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    La prochaine fois donne l'erreur rencontrée et pas juste la ligne où tu as l'erreur que l'on n'ai pas besoin de notre boule de cristal. Dans le cas présent c'est simple, tu dois avoir une NullReferenceException car tu n'as pas instancié le tableau tableauRep tu l'as juste déclaré.

    Sinon passe plutôt par Directory.GetDirectories, tu auras ainsi directement un tableau de chaîne.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    merci de ta reponse aussi rapide.
    desolé, l'erreur etait bien celle que tu as dis,
    l'exception NullReferenceException n'a pas ete genere ; La référence d'objet n'est pas définie à une instance d'un objet
    par contre etant debutant, comment dois je faire pour instancier le tableau ?

    merci

    rajout :

    j'ai essaye avec directory.Getdirectories, ca fonctionne bien, mais j'ai tout le chemin des repertoire, et pas seulement leur noms

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    c'est bon, jai resolu mon probleme, voici mon code :

    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
     
            Dim nombreSousRepertoire As Integer = -1
            Dim tableauRep() As String
            Dim liste As String = ""
            Dim s As DirectoryInfo
     
     
            Vehicule.repertoire = Environ("USERPROFILE")
            Vehicule.repertoire = Vehicule.repertoire & "\vehicules\"
            Dim di As New DirectoryInfo(Vehicule.repertoire)
            Dim diArr As DirectoryInfo() = di.GetDirectories()
     
            If Directory.Exists(Vehicule.repertoire) Then
                For Each s In diArr
                    nombreSousRepertoire += 1
                    'tableauRep = Directory.GetDirectories(Vehicule.repertoire)
                    ReDim Preserve tableauRep(nombreSousRepertoire)
                    tableauRep(nombreSousRepertoire) = s.Name
                Next s
                Label1.Text = "Vous avez " & nombreSousRepertoire & " véhicules d'enregistrer."
                Label2.Text = tableauRep(0) & tableauRep(1) & tableauRep(2)
            Else
                Label1.Text = "Vous n'avez aucun véhicule d'enregistrer."
            End If
    merci de votre aide

  5. #5
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Dans ton code tu redimensionnes ton tableau à chaque tour de boucle. Comme tu connais sa taille dès le début (longueur du tableau diArr) tu devrais initialiser ton tableau avant la boucle.

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

Discussions similaires

  1. [VBA-*]Lister les sous-répertoires et les fichiers de ceux-ci
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 8
    Dernier message: 19/01/2017, 20h05
  2. Lister que les sous-repertoires d'un répertoire
    Par spawns dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2015, 18h17
  3. Lister les sous repertoires et les fichiers d'un dossier
    Par benito9253 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 03/08/2009, 21h49
  4. [windev8]lister les sous-repertoires
    Par fanant dans le forum WinDev
    Réponses: 4
    Dernier message: 26/02/2007, 10h53
  5. se ballader dans les sous repertoires
    Par Krispy dans le forum Langage
    Réponses: 1
    Dernier message: 30/03/2006, 16h46

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