使用C++标准库而不是Boost,如何清空目录?
时间: 2024-12-15 21:13:47 浏览: 9
在C++中,若不想使用Boost库,你可以使用C++17引入的`std::filesystem`标准库来进行目录清理。下面是一个例子,首先包含`<filesystem>`头文件,并通过`std::filesystem::remove_all`函数递归地移除目录中的所有文件和子目录:
```cpp
#include <iostream>
#include <filesystem>
void clearDirectory(const std::string& directoryPath) {
try {
if (std::filesystem::exists(directoryPath)) {
if (std::filesystem::is_directory(directoryPath)) {
for (const auto &entry : std::filesystem::directory_iterator(directoryPath)) {
std::filesystem::remove(entry.path()); // 移除每个文件
}
std::filesystem::remove_all(directoryPath); // 删除整个目录
} else {
std::cout << "Not a directory!" << std::endl;
}
} else {
std::cout << "Directory does not exist." << std::endl;
}
} catch (const std::filesystem::filesystem_error &e) {
std::cerr << "Error occurred: " << e.what() << std::endl;
}
}
```
请注意,在实际应用中,应确保有足够的权限执行这样的操作,并且对异常处理得当。
阅读全文