如何使用c ++或boost递归更改权限,以便我可以获得目录大小

时间:2016-09-05 16:02:25

标签: c++ recursion boost

我有以下代码,以便我可以获得系统上目录的大小

size_t size = 0;

for(recursive_directory_iterator it("/Library/Caches");
    it!=recursive_directory_iterator();
    ++it)
{
    if(!is_directory(*it))
        size+=file_size(*it);
}

cout << "Size of Directory: " << size << endl;

这个问题是如果boost遇到错误,因为它抛出的文件权限和错误。从我读过的内容来看,这已成为一个已知的提升错误。

我想如果我可以为目录中的每个项目赋予我的程序读写权限,那可以解决这个问题。所以我在boost中找到了以下功能。

permissions(file_path, add_perms|owner_write|group_write|others_write);

根据上面的当前代码,我不是100%确定使用它的地方。我尝试将*传递给权限函数,但这似乎也引发了错误。

想知道以递归方式更改目录和文件的权限的最佳方法,以便我可以无错误地使用recursive_directory_iterator,以获取给定目录中所有项目的文件大小。

0 个答案:

没有答案