C++ 递归删除文件
时间: 2023-08-12 22:17:11 浏览: 249
递归删除文件
在 C++ 中递归删除文件可以使用递归函数来实现。以下是一个示例代码:
```cpp
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
void remove_directory(const fs::path& path)
{
if (fs::exists(path)) {
if (fs::is_directory(path)) {
for (auto iter = fs::directory_iterator(path); iter != fs::directory_iterator(); ++iter) {
const auto& file = iter->path();
if (fs::is_directory(file)) {
remove_directory(file);
} else {
fs::remove(file);
}
}
fs::remove(path);
} else {
fs::remove(path);
}
}
}
int main()
{
const fs::path path = "/path/to/directory";
remove_directory(path);
return 0;
}
```
其中,remove_directory() 函数为递归函数,用于删除指定目录及其子目录和文件。首先判断路径是否存在,如果存在则判断是否为目录。如果是目录,则递归调用 remove_directory() 函数删除子目录和文件;如果不是目录,则直接删除文件。最后再删除目录本身。
注意:递归删除文件需要谨慎使用,避免删除重要文件或目录。
阅读全文