C ++实验/文件系统remove_all

时间:2017-04-29 17:21:15

标签: c++

我想在C ++ 17中删除包含子文件夹和文件的文件夹。我正在使用experimental/filesystem

namespace filesys = std::experimental::filesystem;
...

uintmax_t n = filesys::remove_all("tmp");
cout << "Deleted " << n << " files or directories\n";

但是当我运行此代码时,程序抛出异常

  

在抛出'std :: experimental :: filesystem :: v1 :: __ cxx11 :: filesystem_error'的实例后终止调用

     

what():filesystem错误:无法全部删除:目录不为空[tmp]

     

中止

使用compier g ++ 5.4.0

文档说:

  

以递归方式删除p的内容(如果是目录)及其所有子目录的内容,然后删除p本身,就像重复应用POSIX删除一样。不遵循符号链接(删除符号链接,而不是其目标)

我的代码有问题吗?

1 个答案:

答案 0 :(得分:0)

我猜这是实施中的错误: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71313