C++ 11 判断路径是否存在,不存在则创建
时间: 2024-09-28 07:06:52 浏览: 56
在C++11中,虽然没有直接提供内置函数来判断路径是否存在并创建,但是你可以结合`#include <filesystem>`头文件(C++17引入的库),使用`std::filesystem::path`类以及其成员函数来实现这个功能。这里是基本步骤:
首先,你需要确认你的编译器是否支持C++17,因为`<filesystem>`库是在C++17中加入的。
```cpp
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
bool createDirectoryIfNotExists(const std::string& path) {
try {
if (!fs::exists(path)) {
fs::create_directory(path);
return true;
} else {
return false;
}
} catch (const fs::filesystem_error& e) {
std::cerr << "Error creating directory: " << e.what() << '\n';
return false;
}
}
int main() {
std::string directoryPath = "/path/to/directory";
if (createDirectoryIfNotExists(directoryPath)) {
std::cout << "Directory created successfully.\n";
} else {
std::cout << "Directory already exists or failed to create.\n";
}
return 0;
}
```
这段代码会尝试创建指定的目录。如果路径不存在,会新建;如果已经存在,则返回`false`。如果在创建过程中遇到错误,比如权限不足,程序会捕获异常并打印错误信息。
阅读全文