Problème lecture fichier .ini et utilisation openFileDialog

Résolu
kox007 Messages postés 10 Date d'inscription dimanche 28 mars 2004 Statut Membre Dernière intervention 29 juin 2007 - 28 avril 2005 à 17:37
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 12 oct. 2008 à 11:03
Bonjour,

Voici mon problème. Je développe actuellement une application en c#.
L'interface de celle ci utilise des fichiers de langues sous la forme
de fichiers .ini. Tout fonctionne correctement pour la lecture des
messages dans les .ini sauf, ... lorsque j'utilise une openFileDialog
dans mon interface graphique. Si j'ouvre l'openFileDialog puis que je
clique sur OK, l'application n'arrive plus à lire les fichiers de
langues après. Par contre si je clique sur Annuler, tout fonctionne
bien.

Merci par avance pour votre aide.

6 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
28 avril 2005 à 18:05
Salut,

Au démarrage de l'appli le repertoire courant est celui où se trouve l'exe.
Quand tu utilises OpenFileDialog le répertoire courant change pour celui du fichier sélectionné dans la boite de dialogue.
Du coup si tu ouvres tes fichiers ini en indiquant le path comme ceci "monfichier.ini", il ne trouve plus les fichiers en question.

Cocoricoooooooo !!!!
coq
MVP Visual C#
3
kox007 Messages postés 10 Date d'inscription dimanche 28 mars 2004 Statut Membre Dernière intervention 29 juin 2007
28 avril 2005 à 18:14
Merci bcp coq. Après réflection, ça semble tout bête, mais là, tu m'as bien dépanné.
0
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
6 oct. 2008 à 20:11
Salut Coq

As tu une maniere "élégante" de contourner ce probleme ?
Le mieux a mon avis c'est de pouvoir identifier le path de l'application au run time ?
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
6 oct. 2008 à 21:15
Ouhla, le vieux topic :p

Application.StartupPath, ti tu veux le chemin de l'exe ;)

Mx
MVP C# 
0

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

Posez votre question
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
6 oct. 2008 à 21:25
Merci MorpionMX

Oui ca c'est une solution (sans doute la plus élégante et que j'ai deja mis en oeuvre)

Une autre serait de restituer le current path apres un OpenFileDialog
Tu sais comment ?
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
12 oct. 2008 à 11:03
Ha oui ça c'est de la résurrection de topic :p
OpenFileDialog possède une propriété RestoreDirectory (héritée de FileDialog) permettant d'obtenir le comportement voulu, mais ça ne reste bien sûr valable que pour les boites de dialogue reposant sur les contrôles communs Windows.
Tout autre changement de répertoire courant (qu'il soit dans le code courant ou un code tiers utilisé et qu'on ne maitrise donc pas) aura les mêmes impacts.

Mais je n'apprécie en général pas trop ce genre de rustinage : le problème c'est qu'il est assez fragile, il suffit qu'un autre dialogue soit ajouté à l'application sans faire de restauration derrière et on repart pour une boucle de problème (plus ou moins flagrants).
C'est pour ça que je préfère toujours travailler en chemin complet que relatif.

Voir aussi la propriété Environment.CurrentDirectory ou tout simplement la méthode Directory.SetCurrentDirectory.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous