Lister les NOMS de repertoires (pas le chemin complet)

Résolu
gregory__forel Messages postés 36 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 18 juillet 2008 - 3 avril 2006 à 16:52
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 - 4 avril 2006 à 08:11
Bjour à tous,

Voilà un code très simple qui me liste les répertoires contenus dans "C:" dans une combobox en DropDownList grace a un click sur un Button. Il marche, mais je voudrais que la liste retournée soit composée des noms des dossiers et non de "C:\NomDeDossier1", "C:\NomDeDossier2" etc.
J'ai cherché dans la MSDN et sur le forum (peut etre pas assez) et j ai pas trouvé...

namespace WindowsApplication1
{
public partial class Form1 : Form
{
public static string strRutaCarpetas = "C:\";
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
foreach (string Folder in System.IO.Directory.GetDirectories(strRutaCarpetas))
{
comboBox1.Items.Add(Folder);
}
}
}
}

Merci pour vos reponses !

9 réponses

t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
3 avril 2006 à 17:41
Salut, et avec la méthode GetDirectoryNamede la classe Path.
3
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
3 avril 2006 à 17:44
Salut,

Et pourquoi pas :

comboBox1.Items.Add(Folder.Replace(strRutaCarpetas,""));

(ou quelque chose du genre...)

<hr size="2" width="100%">Nurgle (Antoine)
3
gregory__forel Messages postés 36 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 18 juillet 2008
3 avril 2006 à 18:17
Merci, tout fonctionne très bien.

Voila la solution complete pour les debutants (comme moi... qui auraient besoin de TOUTES les explications:
- Creer nouvelle application windows
- Creer un combobox et le mettre en "DropDownList" dans les proprietes
- Creer un Button
- Laisser tous les noms tels quels
- Double cliquer sur Button1
- Remplacez tout le code de toute la page par le code ci dessous

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace WindowsApplication1
{
public partial class Form1 : Form
{
public static string strRutaCarpetas = "C:\";

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)

{
foreach (string Folder in Directory.GetDirectories(strRutaCarpetas))
{
comboBox1.Items.Add(Folder.Replace(Path.GetDirectoryName(Folder), ""));
}
}
}
}
3
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
3 avril 2006 à 17:45
mouarf, j'ai été pris de vitesse
(de beaucoup en plus...)

<hr size="2" width="100%">Nurgle (Antoine)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gregory__forel Messages postés 36 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 18 juillet 2008
3 avril 2006 à 17:47
Merci beaucoup, je vais tester tout ca !!!
0
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
3 avril 2006 à 18:03
Pour Nurgle : ta soluce implique de connaitre le chemin, et pas seulement le lecteur, du dossier sinon tu rissque d'avoir comme résultat "Dossier1\Dossier2" au lieu de "Dossier2".
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
3 avril 2006 à 20:48
<hors_sujet pour t_barbillon >
Ta solution est plus générale et plus polyvalente, la mienne est plus spécifique et ciblée sur son problème... Les deux se valent
Mais je ne suis pas d'accord avec ton "Dossier1\Dossier2" !
Si sa variable strRutaCarpetas contient "C:\Dossier1" par exemple,
ça va faire :
comboBox1.Items.Add(Folder.Replace(strRutaCarpetas,""));
c'est à dire :
comboBox1.Items.Add(Folder.Replace("C:\Dossier1",""));

Et pour un Dossier2 situé dans ce Dossier1, ça va bien te renvoyé "Dossier2" !

La seule contrainte dans mon cas est d'avoir "C:\Dossier1" et pas"C:\Dossier1", ce qui peut facilement être corrigé en englobant son _strRutaCarpetas dans une propriété StrRutaCarpetas qui sur le Set va mettre un "" à la fin si il n'y en a pas

Mais bon, ta solution utilise une fonction du framework alors que la mienne fait des Replace()...donc la tienne est sans doute moins risquée (au niveau des bugs ou des failles, comme l'histoire de "" à la fin )
</hors_sujet>
Donc, gregory_foret, écoute plutôt t_barbillon ! lol

<hr size="2" width="100%">Nurgle (Antoine)
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
3 avril 2006 à 20:53
arg,
gregory__forel et pas <strike>gregory_foret</strike>
désolé

<hr size="2" width="100%">Nurgle (Antoine)
0
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
4 avril 2006 à 08:11
Salut, mea culpa si la variable je suis ok, j'avais juste regardé la déclarartion de la variable strRutaCarpetas dans le code du post et j'ai pas réflléchi plus. Dsl
0
Rejoignez-nous