Sto scrivendo una funzione compatibile in più piattaforme in C++ che crea directory basate su nomi di file di input. Devo sapere se la macchina è Linux o Windows e usare la barra appropriata in avanti o indietro. Per il seguente codice qui sotto, se la macchina è Linux, allora isLinux = true
. Come posso determinare il sistema operativo?Determinare se Linux o Windows in 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);
Se non si intende mostrare il percorso all'utente, è possibile mantenerlo semplice e utilizzare solo una barra in avanti a prescindere. Windows capisce entrambi. (Se * fai * piano su mostrarlo, però, probabilmente dovresti usare i backslash su Windows - sembra più bello essere coerenti con il sistema operativo.) –