我有以下代码,以便我可以获得系统上目录的大小
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,以获取给定目录中所有项目的文件大小。