[dot.net] Récuperer des fichiers dans un dossier

Messages postés
22
Date d'inscription
dimanche 19 juillet 2009
Statut
Membre
Dernière intervention
7 février 2013
- - Dernière réponse : elguevel
Messages postés
735
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
- 11 févr. 2013 à 14:37
Bonjour,

Je n'ai jamais gérer les fichiers d'un dossier.Je demande votre aide pour une compréhension.

Voilà mon souci, j'ai des fichiers dans un dossier : D:\..... c'est des fichiers csv, exemple : Mapping_Table_MSN0001_30112012

Je dois récupérer tous ces fichiers et afficher seulement "0001" dans une combobox qui se trouve sur une popup.

J'ai commencé un tout petit peu mais je n'avance pas :
public List<string> ListAvailable()
        {
           string[] ListAvailable = Directory.GetFiles("D:\trv6 doc\02 - ESN\EMT files");
             for (int i = 0 ; i < ListAvailable.Length ; i++)
             {
            
             }        
        return ListAvailable;
        
        }

        public void LoadFile(string filename)
        {
           
        }

Merci pour votre aide
Afficher la suite 

2 réponses

Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
15
0
Merci
Bonjour,

Tu as déjà fait la moitié du boulot.
Déjà, je te propose d'utiliser la méthode Directory.GetFiles(string, string) au lieu de ta méthode afin de ne prendre que les fichiers csv.
Ta ligne devient donc:
string[] ListAvailable = Directory.GetFiles("D:\trv6 doc\02 - ESN\EMT files", "*.csv");


Ensuite, il te suffit de splitter ou analyser le nom du fichier.
La tout dépend du nommage de tes fichiers.
Si je prend pour exemple le nom Mapping_Table_MSNXXXXX_30112012 où je dois récupérer les X, cela donne un truc du style:
string[] part = Path.GetFilename(ListAvailable[i]).Split(new char[] { '_' });
string number = part[2].Substring(3);


Maintenant, il serait peut-être plus judicieux d'utiliser une expression régulière pour faire ce boulot.
Je te laisse regarder sur le net pour cela.

Bon développement,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
735
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
0
Merci
Slt,

* Fais gaffes de ne pas utiliser le même nom pour ta méthode que tes variables à l'intérieure du bloc : List<string> ListAvailable() différent de string[] ListAvailable

* Pour l'énumération tu peux utiliser foreach :

foreach(string FileAvailable in ListAvailable)
{
}

* Sans oublier de doubler les backslachs en C# :

string[] ListAvailable = Directory.GetFiles("D:\\trv6 doc\\02 - ESN\\EMT files", "*.csv");

ou d'utiliser le caractère @ :

string[] ListAvailable = Directory.GetFiles(@"D:\trv6 doc\02 - ESN\EMT files", "*.csv");


Après çà devrait le faire avec les conseils de billou_13 !

++

../\_/\..
.( o.o ). ~ ElGuevel ~
..> - <..
Commenter la réponse de elguevel