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

Qt Discussion :

QSettings (repertoire Windows)


Sujet :

Qt

  1. #1
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 72
    Par défaut QSettings (repertoire Windows)
    Bonjour à toute la communauté,

    depuis un certain temps, je rencontre un problème dont je n'ai pas pu trouver des solutions sur les posts d'autres membres du club.
    En effet, je cherche à créer un fichier ".ini" via un QSettings dans le repertoire de Windows.
    Pour cela, je procède comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    QSettings settings("C:/Windows/configDatei.ini", QSettings::IniFormat);
    malheuresement, le fichier n'est pas du tout crée. Si par contre je ne precise pas de chemin absolut, c-a-d

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QSettings settings("configDatei.ini", QSettings::IniFormat);
    alors le fichier est bel et bien crée pourtant je veux que cela se fasse dans le repertoire Windows.

    Y aurait-il peut être une autre facon de procéder ?
    Je vous remercie d'avance.

  2. #2
    Membre expérimenté
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Par défaut
    Je ne développe pas sous Windows mais la question se pose peut-être : as tu les droits d'écriture sur ce dossier système?

    Ne faut-il pas de "\" plutôt que des "/" (avec le caractère d'échappement : "\\")?

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Par défaut
    Salut,

    tu peux déplacer le répertoire courant avec la méthode statique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QDir::setCurrent(QString monChemin);
    Puis tu cree ton fichier, puis tu reviens dans ton repertoire precedent.

    Sinon ta méthode doit être bonne, mais essaie peut être avec des \ au lieu des / .

    G.

  4. #4
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 72
    Par défaut
    Merci pour vos suggestions.
    dès que j'essaye tout ca ce soir, je vous tiens informé.
    @@@@++++

  5. #5
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 72
    Par défaut
    Je viens d'essayer toutes vos propositions, mais aucune ne marche.
    Pour cette raison, j'ai donc décider d'enrégistrer mon fichier d'initialisation dans le repertoire temporaire "temp".
    pour cela je procède ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QString path = QDir::tempPath() + "/configFile.ini" ;
    QSettings settings(path, QSettings::IniFormat);
    et cela marche très bien. Par contre, si j'effectue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QSettings settings("C:/Users/Admin/AppData/Local/Temp/configFile.ini", QSettings::IniFormat);
    // le premier paramètre est le chemin du repertoire temporaire sur mon poste de travail
    alors plus rien ne marche. Je ne comprends toujours pas quelle est la cause.

    @@@++++

  6. #6
    Membre expérimenté
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Par défaut
    Tentes ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QSettings settings("C:\\Users\\Admin\\AppData\\Local\\Temp\\configFile.ini", QSettings::IniFormat);
    Je suppose bien entendu que tu es sûr et certain de ton chemin?

    genre si tu créé un fichier toto.txt dans ce repertoire, la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(QFile::exists(C:\\Users\\Admin\\AppData\\Local\\Temp\\toto.txt))
      qDebug() << "OK !";
    te renvoie en console "OK !"

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Par défaut
    Bonjour.

    Je crois que si tu n'écris rien dans ce fameux fichier, alors il ne sera pas créé.
    Essai ce que tu avais fait au début, ajoutes y une section et une clé, et regarde ce que ça donne.

    Logiquement, ça devrait être bon.

    Cordialement,
    PKO

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    tu ne serait pas sous vista, par hazard?
    vista inderdit d'écrire dans ce repertoire il me semble.

  9. #9
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 72
    Par défaut
    Salut une fois de plus

    j'ai essayé la methode suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QSettings settings("C:\\Users\\Admin\\AppData\\Local\\Temp\\configFile.ini", QSettings::IniFormat);
    // Ici suis une partie du code où j'insère des clés dans le fichier ini
    mais cette derniere ne fonctionne pas aussi.
    En passant, je suis bel et bien sur Vista, et je crois que malgré tout, je suis autorisé à créer des fichiers
    dans le repertoire Windows, car je reussie à le faire avec un QFile.

  10. #10
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par dj_the_kid Voir le message
    En passant, je suis bel et bien sur Vista, et je crois que malgré tout, je suis autorisé à créer des fichiers
    dans le repertoire Windows, car je reussie à le faire avec un QFile.
    Tu utilise quel version de Qt?
    Tu est sur du path?

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Par défaut
    Tu nous dis plus haut que la methode suivante fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    QString path = QDir::tempPath() + "/configFile.ini" ;
    QSettings settings(path, QSettings::IniFormat);
    Si tu fais ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    QString path = "C:/Users/Admin/AppData/Local/Temp/configFile.ini"
    QSettings settings(path, QSettings::IniFormat);
    Ca fonctionne ?

    Cordialement,
    PKO

  12. #12
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 72
    Par défaut
    j'ai essayé avec une QString comme tu l'as proposé "Altess". Cela fonctionne maintenant.
    Dommage que je n'ai pas eu cette idée plus tôt. En ce qui conserne le repertoire Windows, je
    pense qu'a travers un QSettings, je n'ai pas les droits d'accès.
    De toutes les facons, je dois me satisfaire avec ce que j'ai déjà sous la main.

    Grand merci à tous pour les contributions

    si ca t'intéresse encore "yan" j'utilise
    - Windows Vista
    - Qt 4.5 (et vsintegration 1.4.3)
    - et je suis sur une partition qui n'est pas celle contenant mon OS

  13. #13
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par dj_the_kid Voir le message
    j'ai essayé avec une QString comme tu l'as proposé "Altess". Cela fonctionne maintenant.

    Bizzare.
    Ca devrais faire la même chose.

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Par défaut
    Heureux d'avoir pu aider, même si je reste tout de même surpris.

    Cordialement,
    PKO

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

Discussions similaires

  1. Programmation : Lier le repertoire windows avec fichier Excel
    Par infocroco dans le forum Windows XP
    Réponses: 3
    Dernier message: 13/04/2012, 17h33
  2. parcourir des repertoires windows en php et js (opendir)
    Par maladev dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/04/2011, 09h59
  3. interdire acces aux repertoires windows
    Par niro75 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/11/2008, 09h58
  4. suppression de repertoire windows
    Par youcef81 dans le forum Windows XP
    Réponses: 3
    Dernier message: 18/08/2006, 18h17
  5. Réponses: 1
    Dernier message: 29/11/2005, 17h06

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