Pb openFileDialog, changement de dossier courant...SVP :)
aachatam
Messages postés5Date d'inscriptionlundi 23 mai 2005StatutMembreDernière intervention29 mars 2006
-
7 juin 2005 à 19:16
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDerniè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 ! :)
cs_yoannd
Messages postés305Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention10 août 20117 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.
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 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 :-)
cs_yoannd
Messages postés305Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention10 août 20117 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 ;)