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 :

Chemin du fichier de config


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 338
    Par défaut Chemin du fichier de config
    Bonjour,
    A cause des permissions utilisateur de Vista, mon exe plante si je souhaite enregistrer mes paramètres car le fichier .config s'enregistre à la racine de mon exé : c:\programme\monappli\..

    Voici ma source d'écriture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private void INI_Save()
            {
    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    config.AppSettings.Settings.Remove("HoursDay");
    config.AppSettings.Settings.Add("HoursDay", m_nHoursDay.ToString());
    config.Save(ConfigurationSaveMode.Modified);
    ConfigurationManager.RefreshSection("appSettings");
    }

    et celle de lecture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void INI_Load()
    {
      m_nHoursDay = Convert.ToInt32(ConfigurationManager.AppSettings["HoursDay"]);
      if (m_nHoursDay==0) m_nHoursDay=8;
    }
    Comment alors lui dire de le placer par exemple dans un dossier où l'utilisateur à le droit d'y écrire qql chose ?

  2. #2
    Membre éprouvé
    Avatar de jgard
    Profil pro
    Inscrit en
    Août 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 67
    Par défaut
    Bonjour,

    La méthode OpenExeConfiguration possède une surcharge qui prend un chemin d'accès en paramètre. Tu peux donc y spécifier le répertoire de ton choix.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 338
    Par défaut
    Merci, en creusant ta piste j'ai trouvé ça et cela fonctionne : En remarque le code qui ne fonctionnait pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    Configuration roamingConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming);
     
    ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
    configFileMap.ExeConfigFilename = roamingConfig.FilePath;
     
    // Get the mapped configuration file.
    Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);

  4. #4
    Membre éclairé Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Par défaut
    Bonsoir,

    Juste une petite question, comment fais-tu pour avoir des balises <appSettings>
    moi VS2008 me génère des balises <ApplicationSettings> et je n'arrive pas à lire les paramètres qui y sont.

    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
              paramAppli.PortServeur = Convert.ToInt32(config.AppSettings.Settings["portServeur"].ToString());
    et bien j'ai 0 dans port serveur.
    Voici app.config:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?xml version="1.0"?>
    <configuration>
        <configSections>
            <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
                <section name="ServeurTcpSocket.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
            </sectionGroup>
        </configSections>
        <connectionStrings>
            <add name="ServeurTcpSocket.Properties.Settings.ChaineConnection" connectionString="Data Source=.\\SQLEXPRESS;Initial Catalog=test;Integrated Security=True" providerName="System.Data.SqlClient"/>
        </connectionStrings>
        <applicationSettings>
            <ServeurTcpSocket.Properties.Settings>
                <setting name="portServeur" serializeAs="String">
                    <value>13000</value>
                </setting>
                <setting name="portTerminaux" serializeAs="String">
                    <value>13001</value>
                </setting>
            </ServeurTcpSocket.Properties.Settings>
        </applicationSettings>
    <startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
    Merci du coup de main.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 14/10/2008, 16h34
  2. récuperation de chemin de fichiers !!!
    Par massiliaman dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/07/2007, 18h17
  3. [SAX] Chemin du fichier XML
    Par mikemikemike dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 25/11/2004, 15h04
  4. [struts] utilisation de plusieurs fichiers de config
    Par Boosters dans le forum Struts 1
    Réponses: 4
    Dernier message: 25/03/2004, 10h04
  5. fichier de config: refuse tcpip_socket=true.
    Par phil25 dans le forum Installation
    Réponses: 1
    Dernier message: 04/01/2004, 15h55

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