Problème lecture fichier .ini et utilisation openFileDialog [Résolu]

Signaler
Messages postés
10
Date d'inscription
dimanche 28 mars 2004
Statut
Membre
Dernière intervention
29 juin 2007
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
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

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
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#
Messages postés
10
Date d'inscription
dimanche 28 mars 2004
Statut
Membre
Dernière intervention
29 juin 2007

Merci bcp coq. Après réflection, ça semble tout bête, mais là, tu m'as bien dépanné.
Messages postés
666
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
5
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 ?
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
Ouhla, le vieux topic :p

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

Mx
MVP C# 
Messages postés
666
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
5
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 ?
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
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
*/