Pb openFileDialog, changement de dossier courant...SVP :)

aachatam Messages postés 5 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 29 mars 2006 - 7 juin 2005 à 19:16
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 9 juin 2005 à 19:43
bonjour a tous !

voila g un probleme de csharp sous visual.net (logique me direz-vous...)

qd je lance mon executable (qui se trouve par ex sur C:\mes documents)
et que j'affiche dans une message box le dossier courant de
l'application, tout va bien je suis bien dans ce repertoire

puis dans une fonction, je declare un "openFileDialog".

je vais chercher un fichier par ex sur D:\toto\fichier.txt.

je clique sur ok, et je reviens dans ma fenetre principale

a ce moment là, je reaffiche dans une message box le dossier courant, et là c le drame !

le dossier courant se retrouve a D:\toto\, cad le dossier ou g été chercher mon fichier

le prob est que apres qd je veux chercher un fichier grace a un chemin
relatif d'origine le repertoire de mon executable, bah ca marche plus
bien evidemment

voila savez vous comme retablir ce chemin ? comme eviter ce changement de dossier courant, ou contrer le pb ?

j'espere avoir été assez clair, je peux bien sûr donner plus de
précisions si vous en avez besoin (et oui c tres important pour moi de
savoir régler ce probleme)

merci a tous, j'attends vos réponse avec impatience ! :)

7 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
7 juin 2005 à 23:58
Salut,

Avec
Environment.CurrentDirectory = Application.StartupPath;
par exemple.

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
8 juin 2005 à 12:03
De toute façons, pour accéder au path de ton programme exécutable, je
te conseille de toujours utiliser Application.StartupPath. Si tu
utilises rien (implicitement le currentDirectory), tu t'exposes à ce
genre de problème.
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 juin 2005 à 13:11
Oui, à ce propos l'ami Path.Combine te sera probablement utile. :-)

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
8 juin 2005 à 13:18
J'ai du mal à comprendre à quoi ça sert, cette méthode... Tu as plus
d'infos coq ? Je trouve la doc msdn pas très claire à ce sujet...



Merci d'avance :)
0

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

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 juin 2005 à 20:45
Déjà je me demande bien pourquoi j'ai donner le lien US... => Path.Combine en FR

Pour l'intérêt de la méthode par exemple
path1=>"C:\UnRep";
path2=>"monfichier.txt";
En une ligne avec Path.Combine tu récupères ton path "C:\UnRep\monfichier.txt"
Tu me diras qu'il suffit de faire, aussi en une ligne path1+"\"+path2

Maintenant l'utilisateur de ta classe\ton composant etc à la bonne idée de te passer path1 sous cette forme
path1="C:\UnRep", ce qui n'est pas faux.
Path.Combine te sort toujours "C:\UnRep\monfichier.txt"
La concatenation te sort "C:\UnRep\\monfichier.txt", ce qui est relativement génant :-)

Donc Path.Combine va entre autres t'éviter de tester toi même que path1 finit déjà par \ ou non etc
Voilà je pense que c'est l'exemple le plus flagrant de l'interet de cette méthode :-)

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
9 juin 2005 à 09:40
Ha d'accord ! C'est pas mal en effet. Au départ, sans rien connaître de
la méthode en elle même, je pensait qu'elle permettait de déduire un
chemin relatif de deux autres chemins. Tu vois, un truc du genre
"c:\MonDossier" et "c:" te donnerai "./..".

D'ailleurs, si une telle méthode existe et si tu la connais, je veux bien que tu m'en fasses profiter ;)
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
9 juin 2005 à 19:43
En tout cas si elle existe dans le Framework lui même je ne l'ai jamais rencontrée ^^

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
Rejoignez-nous