C++ 删除所有文件和子文件夹但保留目录本身
C++ Delete all files and subfolders but keep the directory itself
我需要删除临时文件夹中的所有内容。我知道我可以使用 filesystem::remove_all
和 filesystem::remove_all_dir
但这意味着程序也会删除临时文件夹本身,这当然不是我想要的。我找不到 C++ 的答案,所以如果你们能提供帮助,那就太好了。
谢谢!
如果可以使用std::filesystem,解决方案可能如下:
#include <filesystem>
namespace fs = std::filesystem;
void delete_dir_content(const fs::path& dir_path) {
for (auto& path: fs::directory_iterator(dir_path)) {
fs::remove_all(path);
}
}
std::filesystem::remove_all( path )
将递归删除位于 path
和 的文件夹,如果 path
指的是文件而不是目录,它将删除文件.
所以
void deleteDirectoryContents(const std::string& dir_path)
{
for (const auto& entry : std::filesystem::directory_iterator(dir_path))
std::filesystem::remove_all(entry.path());
}
我需要删除临时文件夹中的所有内容。我知道我可以使用 filesystem::remove_all
和 filesystem::remove_all_dir
但这意味着程序也会删除临时文件夹本身,这当然不是我想要的。我找不到 C++ 的答案,所以如果你们能提供帮助,那就太好了。
谢谢!
如果可以使用std::filesystem,解决方案可能如下:
#include <filesystem>
namespace fs = std::filesystem;
void delete_dir_content(const fs::path& dir_path) {
for (auto& path: fs::directory_iterator(dir_path)) {
fs::remove_all(path);
}
}
std::filesystem::remove_all( path )
将递归删除位于 path
和 的文件夹,如果 path
指的是文件而不是目录,它将删除文件.
所以
void deleteDirectoryContents(const std::string& dir_path)
{
for (const auto& entry : std::filesystem::directory_iterator(dir_path))
std::filesystem::remove_all(entry.path());
}