C++ 获取目录的大小(不是其内容)

C++ 获取目录的大小(不是其内容),c++,filesystems,std,filesize,C++,Filesystems,Std,Filesize,(请先阅读完整问题,然后再将其视为已回答) 在C++中,我们可以通过运行 STD::FielS::FielySead(PATH);code>但是这个函数在目录上不起作用,这是我的问题。 我需要知道目录“inode”的大小,在(大多数)linux系统中,目录的标准大小是4kB或块大小: $:~/tmp/test$mkdir-ex $:~/tmp/test$ls-l 总数4 drwxrwxr-x 2秘密4096 10月15日08:43 ex 这些4kB包含了在该目录中有文件“列表”的空间。 但是,

(请先阅读完整问题,然后再将其视为已回答)

在C++中,我们可以通过运行<代码> STD::FielS::FielySead(PATH);code>但是这个函数在目录上不起作用,这是我的问题。 我需要知道目录“inode”的大小,在(大多数)linux系统中,目录的标准大小是4kB或块大小:

$:~/tmp/test$mkdir-ex
$:~/tmp/test$ls-l
总数4
drwxrwxr-x 2秘密4096 10月15日08:43 ex
这些4kB包含了在该目录中有文件“列表”的空间。 但是,如果目录中的文件数量显著增加,则文件夹的大小可能会增加(这就是我所在的位置)。 我需要能够跟踪这一增长。 所以我的问题是,除了调用C++ > LIS-L/Ung/>或<代码> DU/CODE>,还有一个C++的本地方法来获得目录的大小吗? 我知道它不适用于std::filesystem::file\u size(path)的原因是文件系统以不同的方式表示目录。

对于常规文件p,返回通过读取 POSIX stat获得的结构的st_尺寸构件(符号链接为 随后)

试图确定目录大小的结果(以及 与任何其他非常规文件或符号链接的文件一样)是 实现定义


目录上的
文件大小
在某些实现中可能确实有效,但我想你的可能不行。看起来并不是纯C++的Actudio,但您可以自己调用POSIX <代码> STAT函数。这确实适用于目录和报告您想要的数字。

是的,具体实施情况。我没有想到使用
stat
的选项,非常感谢。似乎有效