微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 C++ 中获取磁盘上目录的大小

如何解决在 C++ 中获取磁盘上目录的大小

以下是我用来在 C++ 中获取目录大小的代码片段:

  boost::system::error_code ec;
  boost::filesystem::space_info si =
    boost::filesystem::space(path,ec);
  if (ec.value() == 0) {
    cout << si.capacity - si.available;
  }

但是上面的代码片段似乎给出了整个磁盘大小而不是磁盘上的特定目录大小,因为我向上面传递了 2 个不同的目录路径,但它们都给出了相同的答案。有人可以帮我找出这有什么问题,或者给我另一种在 C++ 中获取目录大小的替代方法吗? TIA!

解决方法

Boost Reference 声明:

space_info 对象的值是通过使用 ISO/IEC 9945 statvfs() 获得 ISO/IEC 9945 struct statvfs 来确定的。

Opengroup Reference 声明:

statvfs() 函数将获取有关包含以路径命名的文件的文件系统的信息。

man page 声明:

函数 statvfs() 返回有关已安装文件系统的信息。 path 是挂载的文件系统中任何文件的路径名。

根据您的评论:

看看std::filesystem::directory_entry::file_size
的例子 或者更好:Overview of Filesystem library

如果还不清楚:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。