C++ 判断路径是否存在,不存在则创建
时间: 2024-09-28 20:06:50 浏览: 58
在C++中,判断路径是否存在并创建如果不存在通常涉及文件系统操作,可以使用标准库中的`std::filesystem`模块来完成这个任务。首先确保你的代码支持C++17及以上版本,因为`std::filesystem`是在C++17中引入的。
下面是一个简单的示例,展示了如何检查文件是否存在以及创建目录:
```cpp
#include <iostream>
#include <filesystem>
bool createPathIfNotExists(const std::string& path) {
try {
std::filesystem::path p(path);
if (!std::filesystem::exists(p)) {
std::filesystem::create_directory(p);
return true;
} else {
return false; // 已经存在
}
} catch (const std::filesystem::filesystem_error& e) {
std::cerr << "Error creating or checking path: " << e.what() << '\n';
return false;
}
}
int main() {
std::string filePath = "/path/to/your/file.txt";
if (createPathIfNotExists(filePath)) {
std::cout << "Path created successfully.\n";
} else {
std::cout << "Path already exists.\n";
}
return 0;
}
```
在这个例子中,`create_path_if_not_exists`函数会尝试创建给定的路径。如果路径不存在,它将试图创建;如果路径已经存在,则返回`false`。如果在过程中遇到错误,如权限不足等,会捕获`filesystem_error`异常,并输出错误信息。
阅读全文