J'écris une fonction compatible multi-plateforme en C++ qui crée des répertoires basés sur des noms de fichiers en entrée. J'ai besoin de savoir si la machine est Linux ou Windows et utiliser le slash avant ou arrière approprié. Pour le code suivant ci-dessous, si la machine est Linux, alors isLinux = true
. Comment puis-je déterminer le système d'exploitation?Déterminer si Linux ou Windows en C++
bool isLinux;
std::string slash;
std::string directoryName;
if isLinux
slash = "/";
else
slash = "\\";
end
boost::filesystem::create_directory (full_path.native_directory_string() + slash + directoryName);
Si vous n'allez pas montrer le chemin à l'utilisateur, vous pouvez le garder simple et utiliser simplement une barre oblique. Windows comprend les deux. (Si vous * prévoyez * de le montrer, vous devriez probablement utiliser des barres obliques inverses sous Windows - cela semble plus cohérent avec le système d'exploitation.) –