p
error_code&
不接受 std:: error_code & 参数的重载在底层 OS API 错误时抛出 filesystem_error ,以第一 path 参数 p 和作为错误码参数的 OS 错误码构造。若 OS API 调用失败,则接受 std:: error_code & 参数的重载设置该参数为 OS API 错误码,而若不出现错误则执行 ec. clear ( ) 。若内存分配失败,则任何不标记为 noexcept 的重载可能抛出 std::bad_alloc 。
noexcept
在 POSIX 系统上,此函数通常按需调用 unlink 和 rmdir ,在 Windows 上则是 RemoveDirectoryW 和 DeleteFileW 。
unlink
rmdir
RemoveDirectoryW
DeleteFileW
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。 出版时的行为 LWG 3014 C++17 remove_all 的 error_code 重载被标记为 noexcept 但能分配内存 移除 noexcept
remove_all
error_code
#include <iostream> #include <cstdint> #include <filesystem> namespace fs = std::filesystem; int main() fs::path dir = fs::temp_directory_path(); fs::create_directories(dir / "abcdef/example"); std::uintmax_t n = fs::remove_all(dir / "abcdef"); std::cout << "Deleted " << n << " files or directories\n"; 可能的输出: Deleted 2 files or directories remove 删除文件 (函数)
可能的输出:
Deleted 2 files or directories