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

  1. #1
    Membre actif
    [recherche lib] accès à des répertoires spécifiques de manière portable
    Bonjour bonjour,

    Je suis actuellement en train de bosser sur un petit projet d'application qui nécessite le stockage de fichiers tiers. Voulant faire les choses bien, je réalise cette application de manière portable. Du coup, ça devient un peu complexe pour récupérer automatiquement le bon répertoire pour stocker ces fichiers.

    En fait, j'aurais exactement besoin de wxStandardPaths::GetUserDataDir [1]. Mais comme c'est vraiment un petit projet qui se veut léger ça m'embêterais de devoir sortir cette grosse artillerie.

    Je vais de toute façon devoir utiliser boost, mais le module filesystem ne possède rien à ce niveau là.

    Alors bon, si je devais développer uniquement pour Unix, ça irait. J'aurais juste à regarder si je tourne sous mac ou non et retourner que deux chemins différents. Mais Windows fait pas comme les autres!

    Connaissez-vous une bibliothèque portable pour m'aider dans mon travail ?

    Ou peut-être avez-vous sous la main le code pour réaliser ce genre de chose pour les différentes versions de Windows ? (Sait-on jamais )

    Merci d'avance pour l'aide que vous m'apporterez!

    [1] : j'ai aussi un doute sur le résultat pour Windows : avec Windows 7 le chemin n'est-il pas qqch comme /Users/… ? (J'ai pas de 7 installée actuellement.)

  2. #2
    Membre chevronné
    boost::filesystem

  3. #3
    Membre actif
    Citation Envoyé par Joel F Voir le message
    boost::filesystem
    C'est bien gentil à toi de vouloir aider mais si tu pouvais lire l'entier de mon premier message ça serait encore mieux.

    Je précise encore ce que je cherche : une bibliothèque permettant ceci :
    virtual wxString wxStandardPaths::GetUserDataDir ( *)* const [virtual]
    Return the directory for the user-dependent application data files:
    Unix: ~/.appinfo
    Windows: "C:\Documents and Settings\username\Application Data\appinfo"
    Mac: "~/Library/Application Support/appinfo".
    Merci d'avance

  4. #4
    Membre chevronné
    As tu regarder dans les exemples, je reste persuadés que boost:fs à ce genbre de truc pour 'lavoir vu passer sur la ML dev.

  5. #5
    Membre actif
    Je suis d'accord, on s'attendrait à trouver ce genre de chose avec cet lib mais même dans les exemples rien de s'en approche.

  6. #6
    Membre chevronné
    au temps pour moi donc

  7. #7
    Membre expert
    En fait j'ai aussi vu des discussions pour une fonction similaire, mais il y avait pas mal de desaccord parceque ce n'est pas forcément quelque chose de "standard".

    Je pensais qu'ils avaient finis par quand même fournir la fonction... tu as vérifier dans la dernière version de boost?

  8. #8
    Membre expert
    Après quelques recherches je ne retrouve pas al discussion. Je ne trouve pas d'équivalent non plus dans POCO.


    Donc il va falloir isoler une fonction encapsulatrice de manière a avoir un implementation par system.

  9. #9
    Rédacteur

    Citation Envoyé par Klaim Voir le message
    Je ne trouve pas d'équivalent non plus dans POCO.
    Peut être path::home(), non ?

  10. #10
    Membre actif
    Merci pour POCO, je ne connaissais pas! Par contre, ce n'est pas mon bonheur… Depuis Vista le chemin de stockage n'est plus dans la «home» de l'utilisateur.

    J'ai donc opté pour une solution : créer cette petite fonction moi-même.

    Je vous remercie de votre aide encore une fois.

  11. #11
    Membre actif
    J'ai «terminé» ma fonction. Vous pouvez y jeter un oeil ici : http://hiura.tuxfamily.org/wordpress...m-directories/

    Si vous avez des remarques, ça fait un bout de temps que j'ai pas touché au C++ (greumeuleu que ça m'a manqué!) et j'ai peut-être fait une petite bourde par-ce par là (en même temps j'espère pas vu la taille du code ).

  12. #12
    Membre expert
    Depuis Vista le chemin de stockage n'est plus dans la «home» de l'utilisateur.
    Il me semble que cela dépends de ce dont on parle...D'après mon experience sur Windows 7 (qui peut être légèrement différente, je ne sais pas):

    - Si c'est une appli qui tente d'ecrire dans le dossier d'installation de l'application, les fichiers seront en réalité écrits dans un dossier planqué dans le dossier de l'utilisateur (AppData ou quelque chose comme ça) de manière a protéger le systeme tout en permettant aux vieilles appli de tourner normalement;
    - Si c'est une appli qui gère le fait qu'il y a des données spcifiques a l'utilisateur, alors il utilise le dossier de l'utilisateur (et eventuellement directement dans Mes Documents);

    Du coup normalement il doit bien y avoir un equivalent du Home, mais selon le type de manipulation tu ne vas pas le faire au même endroit dans les données utilisateur.

###raw>template_hook.ano_emploi###