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

davidson81 Messages postés 22 Date d'inscription dimanche 19 juillet 2009 Statut Membre Dernière intervention 7 février 2013 - 6 févr. 2013 à 09:42
elguevel Messages postés 718 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

2 réponses

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
6 févr. 2013 à 13:45
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
---------------------
0
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
11 févr. 2013 à 14:37
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 ~
..> - <..
0
Rejoignez-nous