Question

Y at-il un moyen d'obtenir le caractère de séparateur de chemin de la plate-forme en utilisant Boost.Filesystem ? Par séparateur de chemin, je / moyenne pour Unix et \ pour Windows.

Je sais déjà que je peux utiliser boost::filesystem::path::operator/ pour concaténer deux chemins ainsi que le caractère de séparation approprié. Mais je veux juste soit / ou \.

Je sais aussi que je peux utiliser #ifdef _WIN32, mais je préférerais que Boost.Filesystem me dire le caractère de séparation approprié.

EDIT: Je veux utiliser la version 3 de l'API Boost.Filesystem, tel qu'il est utilisé dans Boost 1,48 .

Était-ce utile?

La solution

de la version 1.57, Boost a maintenant une meilleure solution, qui est juste char / wchar_t constant (en fonction de différentes plates-formes). boost::filesystem::path::preferred_separator

Lire http: //www.boost. org / doc / libs / release / libs / système de fichiers / doc / reference.html #-système d'exploitation exemples pour plus d'informations. Il y a encore plus de fonctionnalités dépendantes du système en elle.

Exemple simple:

#include <boost/filesystem.hpp>
#include <iostream>

int main() {
    std::cout << boost::filesystem::path::preferred_separator << std::endl;
}

Autres conseils

Il semble que boost::filesystem::path::make_preferred est le ticket:

Effets: Le contenu est converti chemin au natif préféré format. [Note: Sous Windows, l'effet est de remplacer les barres obliques avec antislashs. Sur Posix, il n'y a pas d'effet. - Note de fin]

Exemple:

namespace bfs = boost::filesystem;
bfs::path slash("/");
bfs::path::string_type preferredSlash = slash.make_preferred().native();

ai pas testé, mais il semble que vous devriez pouvoir l'utiliser sur un coup de pouce récent:

http://www.boost.org/ doc / libs / 1_43_0 / libs / système de fichiers / doc / reference.html

#include <boost/filesystem.hpp>
#include <iostream>

int main() {
    std::cout << boost::filesystem::slash<boost::filesystem::path>::value << std::endl;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top