IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Fichier de paramètres utilisateur ?


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Par défaut Fichier de paramètres utilisateur ?
    Bonjour,

    Je voudrais savoir comment créer un fichier de paramètres de portée utilisateur donc modifiable via l'application et qui se situerait dans le même emplacement que mon éxécutable ? (Paramètres pour tous les utilisateurs et non un user.config pour chacun).

    Merci.

  2. #2
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Ce genre d'informations ne devrait pas se stocker dans le même répertoire que l'application.

    Je t'encourage à découvrir l'IsolatedStorage.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    ou plus simplement dans le répertoire Application Data de l'utilisateur
    Sous XP : C:\Documents and Settings\<NomDeLUtilisateur>\Application Data\<NomDeTonAppli>
    Sous Vista : C:\Users\<NomDeLUtilisateur>\Application Data\<NomDeTonAppli>
    Plus généralement, tu peux récupérer ce chemin comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string appData = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "NomDeTonAppli");

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Par défaut
    et le app.config?
    ça ne te convient pas?...

    moi je ne comprends pas trop ce qu'il veut...
    1 seul fichier
    ou bien un fichier séparé pour chaque utilisateur
    ???

  5. #5
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Citation Envoyé par tomlev Voir le message
    ou plus simplement dans le répertoire Application Data de l'utilisateur
    C'est exactement la raison d'exister de l'IsolatedFileStorage ;-) Stocker des fichiers (de config par exemple) dans la zone privée d'un utilisateur. ;-)

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par neptune Voir le message
    C'est exactement la raison d'exister de l'IsolatedFileStorage ;-) Stocker des fichiers (de config par exemple) dans la zone privée d'un utilisateur. ;-)
    oui, mais j'aime pas du tout ce truc là parce que
    1. ça te met les fichiers dans un endroit quasi-impossible à retrouver manuellement
    2. c'est pas du tout intuitif à utiliser

  7. #7
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Citation Envoyé par tomlev Voir le message
    oui, mais j'aime pas du tout ce truc là parce que
    1. ça te met les fichiers dans un endroit quasi-impossible à retrouver manuellement
    2. c'est pas du tout intuitif à utiliser
    Je ne peux pas te donner tort, c'est certain. C'est un peu comme une application ClickOnce ;-)

    Mais avons nous vraiment besoin de savoir où se trouve ce store? Les API relatives à l'IsolatedStorage gère complètement cet aspect et connaisse ou se trouve l'information.

  8. #8
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Par défaut
    Citation Envoyé par tomlev Voir le message
    oui, mais j'aime pas du tout ce truc là parce que
    1. ça te met les fichiers dans un endroit quasi-impossible à retrouver manuellement
    2. c'est pas du tout intuitif à utiliser
    Voilà éxactement les raisons pour laquelle je souhaite avoir un fichier de configuration utilisateur dans le dossier même du programme.

    Pourquoi me déconseillez une telle solution alors que la majorité des programmes ont leur fichier de configuration dans leur dossier d'installation.

    Mon idéal serait d'avoir un SEUL fichier de configuration (portée utilisateur je précise) dans mon dossier où se trouve mon exécutable.
    Voilou.

  9. #9
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Citation Envoyé par Shypster Voir le message
    Pourquoi me déconseillez une telle solution alors que la majorité des programmes ont leur fichier de configuration dans leur dossier d'installation.
    Parce que c'est une des pratiques les plus mauvaises! C'est à cause de ce genre de mauvaises habitudes que l'écosystème Microsoft est aussi peu sécurisé.

  10. #10
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Par défaut
    Citation Envoyé par neptune Voir le message
    Je ne peux pas te donner tort, c'est certain. C'est un peu comme une application ClickOnce ;-)

    Mais avons nous vraiment besoin de savoir où se trouve ce store? Les API relatives à l'IsolatedStorage gère complètement cet aspect et connaisse ou se trouve l'information.
    Quand tu désinstalles un programme, ça supprime le dossier d'installation ou se trouve l'exécutable mais qu'en est il des dossiers qui se trouve dans C:\Documents and settings\...

    ps: attention, ce que je dit concerne un déploiement sans passer par ClickOnce que je ne trouve d'ailleurs pas trés intuitif et souple.

  11. #11
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Ils ne sont évidement pas supprimé car l'installateur n'étudies pas ton code .NET pour découvrir les fichiers qu'il pourrait créer.

    C'est un avantage (l'utilisateur garde ses settings, pratique s'il ré-installe l'application) et un inconvénient (fichiers "fantômes"). A l'heure ou il n'est plus rare de posséder des disques de plus de 100 Go je trouve l'inconvénient faible.

  12. #12
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Par défaut
    Citation Envoyé par neptune Voir le message
    Ils ne sont évidement pas supprimé car l'installateur n'étudies pas ton code .NET pour découvrir les fichiers qu'il pourrait créer.

    C'est un avantage (l'utilisateur garde ses settings, pratique s'il ré-installe l'application) et un inconvénient (fichiers "fantômes"). A l'heure ou il n'est plus rare de posséder des disques de plus de 100 Go je trouve l'inconvénient faible.
    Oui on peut le voir comme ça effectivement mais un utilisateur qui désinstalle un programme c'est dans la plupart des cas pour ne plus l'utiliser.

  13. #13
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Citation Envoyé par Shypster Voir le message
    Oui on peut le voir comme ça effectivement mais un utilisateur qui désinstalle un programme c'est dans la plupart des cas pour ne plus l'utiliser.
    Souvent, oui. Mais laisser quelques fichiers ne l'impactera en aucun points!

  14. #14
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Par défaut
    Enfin, apparemment selon vous ce n'est pas une bonne idée mon premier post.

  15. #15
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Ce n'est pas une idée excellente, mais tu es libre encore de faire ce que tu veux. ;-)

    A pondérer par rapport au scope d'utilisation de ton application.

  16. #16
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par neptune Voir le message
    Mais avons nous vraiment besoin de savoir où se trouve ce store?
    Personnellement ça m'arrive souvent d'aller regarder ou modifier manuellement des fichiers de conf dans Application Data, donc c'est galère s'ils sont planqués au fin fond d'une arborescence totalement contre-intuitive...

    Citation Envoyé par Shypster Voir le message
    Pourquoi me déconseillez une telle solution alors que la majorité des programmes ont leur fichier de configuration dans leur dossier d'installation.
    D'abord, c'est faux : aujourd'hui la plupart des programmes récents mettent leurs fichiers de conf dans Application Data. Ensuite, si tu mets tes fichiers de config dans le dossier d'installation, ton appli ne sera pas compatible avec Vista : l'UAC impose d'être en mode administrateur pour écrire dans certains répertoires, notamment Program Files.

    Citation Envoyé par Shypster Voir le message
    Mon idéal serait d'avoir un SEUL fichier de configuration (portée utilisateur je précise) dans mon dossier où se trouve mon exécutable.
    Voilou.
    Donc en fait il te faut un fichier de conf par utilisateur ? Donc si tu les mets tous dans le dossier de l'exe, il faut qu'ils aient des noms de fichier différents... pas très pratique. En les mettant dans Application Data ça résout le problème, puisque chaque utilisateur a un répertoire Application Data

  17. #17
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Par défaut
    Non je veux avoir un fichier de paramètres commun à tous les utilisateurs.

  18. #18
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IsolatedStorageFile.GetMachineStoreForApplication()
    :-)

    Non, sérieusement, je ne comprend pas pourquoi on revient encore sur ce thread. On t'as donné plusieurs pistes, chacunes avec des points positifs et négatifs.

  19. #19
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Par défaut
    Ok, de toute façon suite à vos différentes réponses j'ai choisi de laisser visual studio gérer mes paramètres.
    Voilà, merci pour tous ses éclaircissements.

  20. #20
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Shypster Voir le message
    Non je veux avoir un fichier de paramètres commun à tous les utilisateurs.
    Ah ok
    Dans ce cas tu t'es mal exprimé... "portée utilisateur", ça veut dire "valable pour l'utilisateur courant, pas pour les autres.
    La solution que je t'ai proposée est toujours valable, tu peux mettre le fichier dans le répertoire Application Data commun (partagé par tous les utilisateurs) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string appData = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "NomDeTonAppli");
    De toutes façons si tu utilises les settings générés par Visual Studio, tu obtiendras plus ou moins la même chose, et en plus ça diminue la quantité de code à écrire...

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/04/2006, 10h30
  2. Réponses: 1
    Dernier message: 06/04/2006, 13h22
  3. [SQL]Requête de MAJ avec paramètres utilisateurs
    Par Nenette_cherie dans le forum Access
    Réponses: 4
    Dernier message: 10/01/2006, 17h54
  4. Réponses: 7
    Dernier message: 29/09/2005, 10h19
  5. fichier mdb + multi utilisateurs
    Par wello00 dans le forum Access
    Réponses: 3
    Dernier message: 27/09/2005, 21h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo