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

Boost C++ Discussion :

Boost.filesystem et les chemins avec des espaces/signes


Sujet :

Boost C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 180
    Par défaut Boost.filesystem et les chemins avec des espaces/signes
    Bonjour à tous,

    J'essaie d'utiliser boost.filesystem avec des chemins contenant des espaces.
    Il s'agit du chemin "Application Data" (C:\Documents and Settings\usr\Application Data) sous Windows et du chemin "appdata" (un simple dossier appdata par rapport à l'exe) sous les autres OS.
    Pour la portablilité je sais que boost::filesystem::path ne supporte pas les racines, je supprime donc le C: sous Windows. Le problème c'est que boost::filesystem::path semble aussi ne pas supporter les espaces (pour des raisons de portablilité j'imagine).
    En effet lorsque je fournis à la classe path un chemin avec espaces je vois le message suivant sur la ligne de commande :
    This application has requested the Runtime to terminate it in an unusual way.
    Please contact the application's support team for more information.
    J'ai essayé avec la forme courte du chemin (/DOCUME~1/ADMINI~1/APPLIC~1) mais ça ne change rien.
    Pourtant pour un chemin comme par exemple "/chemin" tout fonctionne à merveille.
    J'aimerais donc savoir comment faire lorsqu'un chemin contient des espaces, pour que boost::filesystem::path l'accepte, si cela est possible bien sur.

    D'avance merci!

    Spartan03

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Pour la portabilité, Boost.Filesystem supporte la racine, c'est juste que sous Linux, il n'y en a pas, donc il n'y a pas d'intérêt à en mettre, je ne vois pas le pourquoi de l'argument de la portabilité.
    Ensuite, en ce qui concerne le plantage, le débuggage indique qu'il a lieu à quel endroit ?

  3. #3
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Question comme ça : As-tu bien indiqué que tu utilisais des chemins natifs ?
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  4. #4
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Tu n'aurais pas une exception qui s'échappe des fois ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 180
    Par défaut
    Citation Envoyé par Miles
    Ensuite, en ce qui concerne le plantage, le débuggage indique qu'il a lieu à quel endroit ?
    Le plantage à lieu lors de la construction de mon instance de path.

    Citation Envoyé par JolyLoic
    Question comme ça : As-tu bien indiqué que tu utilisais des chemins natifs ?
    Non, je ne vois pas comment faire pour l'indiquer lors de la construction de mon instance de path. Pourrais-tu me le dire?

    Citation Envoyé par Luc Hermitte
    Tu n'aurais pas une exception qui s'échappe des fois ?
    Euh, je n'avais pas pensé à récupérer les exceptions , j'ai fait mon petit bloc try/catch et effectivement! Lorsque je fournis un chemin avec racine j'ai l'exception suivante :
    noost::filesystem::path invalid name C: in path "C:/Documents and Settings/Administrateur/Application Data
    (A noter que j'ai remplacé les antislashs de Windows par des slashs).

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Et tu as essayé avec "\ " ? - échappement des espaces sous Linux -

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 180
    Par défaut
    Citation Envoyé par Miles
    Et tu as essayé avec "\ " ? - échappement des espaces sous Linux -
    Oui mais la il y'a carrément un warning à la compilation (et toujours le même bug à l'éxécution qui me dit que "Documents and Settings" n'est pas valide dans le chemin "/Documents and Settings/Aministrateur/Application Data.
    Le warning c'est
    Citation Envoyé par MinGW
    warning: unknown escape sequence: '\040'
    J'imagine que c'est parce que je compile sous Windows.

  8. #8
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Pardon, il fallait mettre "\\ " pour échapper le '\'

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

Discussions similaires

  1. Gérer un chemin avec des espaces
    Par helaaa dans le forum MATLAB
    Réponses: 2
    Dernier message: 25/03/2013, 19h15
  2. Problème d'espaces dans les chemins avec Cygwin
    Par destructive dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 14/04/2008, 17h48
  3. Problème de chemin de fichier avec des espaces
    Par Akronyme dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 11/12/2006, 17h12
  4. os.system et chemins avec des espaces
    Par frenchy404 dans le forum Général Python
    Réponses: 3
    Dernier message: 08/12/2006, 22h03

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