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

C# Discussion :

ajouter des vakeur au tableau string[]


Sujet :

C#

  1. #1
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Points : 241
    Points
    241
    Par défaut ajouter des vakeur au tableau string[]
    Bonjour,
    j'ai un programme qui retourne les noms des fichiers d'un dossier, donc les noms sont stocké dans un tableaux . aussi je teste si'il ya des repertoires pour retourners ses fichiers aussi et les mettres dans le tableaux premiers:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     public static string[] getAllFiles(string chemin)
            {
                string[] files = Directory.GetFiles(chemin);   // tableau contient les noms des fichiers
                string[] dossiers = Directory.GetDirectories(chemin);  // tableau contient les noms des dossiers
                 if (dossiers.GetLength(0) != 0)
                {
                    for (int i = 0; i < dossiers.Length; i++)
                    {
                        files = Directory.GetFiles(dossiers[i]); // je veux ajouter le nouveau contenu au contenu déja dans tableau files
                    }
                }
    return files;
            }
    Merci par avance,

  2. #2
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 640
    Points : 2 149
    Points
    2 149
    Par défaut
    Salut,

    utilise une List pour ajouter a chaque fois tes fichiers , ensuite tu la convertis en tableau , comme ça tu changes rien au 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
            public static string[] getAllFiles(string chemin)
            {
                List<string> fichiers = new List<string>();
                string[] files = Directory.GetFiles(chemin);   // tableau contient les noms des fichiers
                string[] dossiers = Directory.GetDirectories(chemin);  // tableau contient les noms des dossiers
                fichiers.InsertRange(fichiers.Count,files);
                if (dossiers.GetLength(0) != 0)
                {
                    for (int i = 0; i < dossiers.Length; i++)
                    {
                        fichiers.InsertRange(fichiers.Count,Directory.GetFiles(dossiers[i])); // je veux ajouter le nouveau contenu au contenu déja dans tableau files
                    }
                }
                return fichiers.ToArray();
            }
    Ici , on insert directement tout le tableau dans la liste , et en utilisant fichiers.Count , on insert toujours a la fin de la liste.

    Sinon , ton code ne va que dans un niveau de dossiers , c'est ce que tu voulais a la base ?

    EDIT : corrigé

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,

    Avez vous essayer "Array.Resize" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int arrayLength = myArr.Length;
    Array.Resize(ref myArr, arrayLength + 1);
    Array[arrayLength] = 'nouvelle valeur en fin de tableau';
    La référence est http://msdn.microsoft.com/fr-fr/libr...vs.110%29.aspx

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Le code de Pixel doit marcher sauf qu'il a oublié de rajouter les premier fichier qui sont à la racine dans son résultat mais c'est un détail...

    Par contre j'ai juste l'impression que tu es en train de récrire du code fournit par le Framework .Net :

    Voici ce que j'aurai utilisé pour faire la même chose que toi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                 string[] res = Directory.GetFiles(chemin, "*", SearchOption.AllDirectories);
                //ou
                IEnumerable<string> res1 = Directory.EnumerateFiles(chemin, "*", SearchOption.AllDirectories);
    Les paramètres :
    • string path : Le chemin
    • string searchPattern : Le filtrage (ex: "*.txt", "*.jpg")
    • SearchOption searchOption : Enum qui a pour valeur SearchOption.TopDirectoryOnly ou SearchOption.AllDirectories, selon si tu veux parcourir l'arborescence ou non.

  5. #5
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 640
    Points : 2 149
    Points
    2 149
    Par défaut
    Citation Envoyé par katkiller Voir le message
    Le code de Pixel doit marcher sauf qu'il a oublié de rajouter les premier fichier qui sont à la racine dans son résultat mais c'est un détail...
    Autant pour moi , j'ai effectivement oublié de rajouter ceux de base .Il suffit de rajouter une ligne de InsertRange() avant la boucle.

    Je me suis aussi demandé s'il voulait aller dans tous les niveaux de sous-dossiers ou si c'était spécifiquement le premier niveau.

Discussions similaires

  1. Ajouter des cellules à un tableau
    Par rambc dans le forum jQuery
    Réponses: 0
    Dernier message: 27/11/2010, 13h08
  2. Ajouter des valeurs à un tableau
    Par Mchupakabra dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 02/04/2008, 16h03
  3. ajoute des caractère dans un string
    Par TrollTop dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 23/10/2007, 17h22
  4. Ajouter des caractères dans un string
    Par Janny dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/06/2007, 12h45
  5. [WD9] [Etats][Débutant] Ajouter des lignes à un tableau
    Par EpOnYmE187 dans le forum WinDev
    Réponses: 7
    Dernier message: 20/12/2005, 12h20

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