如何在Ada中获得目录的大小?

如何在Ada中获得目录的大小?,ada,Ada,我想知道目录的大小。不幸的是,Ada.Directories.Size函数引发了一个异常 引发的ADA.IO_异常。名称_错误:文件“/some/dir”不存在 当尝试获取目录大小时 澄清一下:我不是指此目录中文件的总大小,而是指目录本身的大小。计算目录的总大小时,与du之类的工具相比,缺少一些字节。这些是目录大小。方法Ada.Directories.Size仅适用于简单文件。要在目录上使用它,参数必须是目录项类型(只能使用获取下一个目录项函数构造) -->使用带有适当模式的Start\u Se

我想知道目录的大小。不幸的是,
Ada.Directories.Size
函数引发了一个异常

引发的ADA.IO_异常。名称_错误:文件“/some/dir”不存在

当尝试获取目录大小时


澄清一下:我不是指此目录中文件的总大小,而是指目录本身的大小。计算目录的总大小时,与
du
之类的工具相比,缺少一些字节。这些是目录大小。

方法
Ada.Directories.Size
仅适用于简单文件。要在目录上使用它,参数必须是
目录项类型
(只能使用
获取下一个目录项
函数构造)


-->使用带有适当模式的
Start\u Search
,这样您就只能找到所需的文件夹。

Ada.Directories.Exists函数的结果是什么?对于
Ada.Directories.Size
子程序,“如果外部文件不是普通文件,则结果由实现定义。”@NWS目录存在,
Ada.Directories.exists
返回
true
@trashgod这是否意味着,在GNAT实现中,无法使用标准库获得目录大小?即“目录”的概念存储为一个文件,其大小和其他特征可以像其他文件一样查询,是高度特定于操作系统的。因此,我认为任何此类函数都不属于Ada.Directories。该语言为操作系统特定的内容定义了Ada.Directories.Information。RM列出了类Unix系统上应该可用的例程,以及“目录大小”不是一个,但是RM也允许将例程添加到包中,所以您可以说服您的Ada编译器供应商添加一个。否则您必须自己与stat()接口。@Maec:这只是意味着您必须查看实现,以了解为什么
大小
du
不匹配。