【发布时间】:2020-10-15 06:46:48
【问题描述】:
(请在将其视为已回答的问题之前,阅读完整的问题)
在 C++ 中,我们可以通过运行std::filesystem::file_size(PATH); 来获取常规文件的文件大小,但是这个函数不适用于目录,这是我的问题。
我处于需要知道目录“inode”大小的情况,在(大多数)Linux 系统中,目录的标准大小是 4kB 或块大小:
$:~/tmp/test$ mkdir ex
$:~/tmp/test$ ls -l
total 4
drwxrwxr-x 2 secret secret 4096 Oct 15 08:43 ex
这些 4kB 包含用于在该目录中包含文件“列表”的空间。
但是如果目录中的文件数量变得非常大,文件夹的大小可能会增加(这就是我所在的位置)。
我需要能够跟踪这种增长。
所以我的问题是,除了从 C++ 调用 ls -l 或 du 之外,还有 C++-native 获取目录大小的方法吗?
我知道它不适用于std::filesystem::file_size(path) 的原因是文件系统表示目录的方式不同。
【问题讨论】:
标签: c++ filesystems std filesize