C++-Äquivalent von Pythons os.makedirs(..., exist_ok=True)
In C++17 können Sie std::filesystem verwenden, das std::filesystem::create_directories bereitstellt.
Ähnlich wie Pythons os.makedirs(..., exist_ok=True) oder der Shell-Befehl mkdir -p wird dies rekursiv Verzeichnisse erstellen.
mkdir_example.cpp
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main() {
std::string directoryPath = "output";
try {
// Create the directory
fs::create_directories(directoryPath);
std::cout << "Directory created successfully." << std::endl;
} catch (const std::exception& ex) {
std::cerr << "Error creating directory: " << ex.what() << std::endl;
}
return 0;
}Beachten Sie, dass Sie Ihrem Compiler typischerweise mitteilen müssen, den C++17-Standard zu verwenden. Verwenden Sie beispielsweise für GCC -std=c++17 oder -std=gnu++17, falls Sie GNU-Erweiterungen verwenden möchten
build_mkdir.sh
g++ -o main main.cpp -std=c++17Wenn Sie einen älteren Compiler verwenden müssen, der C++17 nicht unterstützt, müssen Sie möglicherweise std::experimental::filesystem verwenden, das grundsätzlich dieselbe API bereitstellt, aber im std::experimental::filesystem-Namespace:
mkdir_example_legacy.cpp
#include <iostream>
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
int main() {
std::string directoryPath = "output";
try {
// Create the directory
fs::create_directories(directoryPath);
std::cout << "Directory created successfully." << std::endl;
} catch (const std::exception& ex) {
std::cerr << "Error creating directory: " << ex.what() << std::endl;
}
return 0;
}Check out similar posts by category:
C/C++
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow