[C#] Nom de fichier dans un textBox

jeffwow Messages postés 140 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 5 septembre 2014 - 21 déc. 2002 à 03:02
pornik Messages postés 37 Date d'inscription mardi 11 décembre 2001 Statut Membre Dernière intervention 31 décembre 2002 - 25 déc. 2002 à 12:45
Donc, j'ouvre un fichier avec OpenFileDailog... jusque là ça va. Ensuite, je voudrais prendre le nom de ce fichier et l'envoyer dans un textBox. textBox.Text= OpenFileDialog.Filename.toString();

Jusque là pas de problème, tout baigne. Là ou ça se corse, c'est lorsque je ne veux pas avoir tout le path du fichier. Dans le TextBox pour l'instant ce qui s'afficher c'est:

c:\mondossier\monsousdossier\unautre\fichier.txt

Mais moi je veux que seulement le nom (fichier.txt) s'affiche dans le textBox.

Quelqu'un a une idée de la façon de s'y prendre?

Jeff

5 réponses

jayrock Messages postés 24 Date d'inscription vendredi 10 mai 2002 Statut Membre Dernière intervention 13 avril 2003
21 déc. 2002 à 18:26
Une façon compliquée mais qui marche est d'utiliser la séparation des zones de ton texte. Dans un tableau en utilisant Regex.split tu vas séparer ta chaine en "mondossier", "monsousdossier", "unautre" et "fichier.txt".
Pour ça tu utilises :

using RE=System.Text.RegularExpressions;
...
string[] ts=RE.Regex.Split(TextBox.Text,"");
int nbre=ts.Length;
string nomfichiersansrepertoire=ts[nbre];

Je pense que ça marche, mais c'est à vérifier. Sinon, avec un using System.IO, tu n'as rien trouver ? Je sais qu'on peut avoir le répertoire, donc tu dois pouvoir avoir le nom de ton fichier ...

jayrock
0
jayrock Messages postés 24 Date d'inscription vendredi 10 mai 2002 Statut Membre Dernière intervention 13 avril 2003
21 déc. 2002 à 18:32
Une solution qui pourrait aussi te donner des résultats à vérifier est d'utiliser System.IO ( te donne tous les noms des fichiers contenus dans le répertoire courrant sans extension je pense, j'ai pas testé ) :

using System.IO;
...
string curDir=Directory.GetCurrentDirectory();
DirectoryInfo cdi=new DirectoryInfo(curDir);
foreach(FileInfo fi in cdi.GetFiles())
TextBox.text=fi.Name
jayrock
0
jayrock Messages postés 24 Date d'inscription vendredi 10 mai 2002 Statut Membre Dernière intervention 13 avril 2003
21 déc. 2002 à 18:36
ou ( 3ème solution de la série :-) ) qui te donnera ce que tu veux je pense :
using System.IO;
...
FileInfo f=new FileInfo(ta_chaine_avec_le_répertoire);
string nom_avec_extension=f.Name;
long taille_fichier=f.Length;
DateTime creation=f.CreationTime;
etc ....

jayrock
0
jeffwow Messages postés 140 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 5 septembre 2014 1
21 déc. 2002 à 22:04
Merci bien, je vais essayer tout ca :)

Jeff
0

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

Posez votre question
pornik Messages postés 37 Date d'inscription mardi 11 décembre 2001 Statut Membre Dernière intervention 31 décembre 2002 2
25 déc. 2002 à 12:45
> string[] ts=RE.Regex.Split(TextBox.Text,"");
Pourquoi s'embêter avec les Regex alors que la classe string contient la méthode Split ? Et oublie pas le double back-slash ou alors ajoute le @ avant les guillemets pour ne plus avoir à ajouter des caractères d'échappement.
string[] ts = TextBox.Text.Split('\\');
> int nbre=ts.Length;
Inutile de passer par une variable pour si peu...
> string nomfichiersansrepertoire=ts[nbre];
Le dernier élément du tableau étant <taille-1> cela va dépasser... Cela aurait du être ts[nbre-1]. Bon pour résumer ce serait plus simple ainsi :

string[] ts = OpenFileDialog.Filename.Split('\\');
textBox.Text = ts[ts.Length-1];
0
Rejoignez-nous