|
| iMatix home page | << | < | > | >> |
SFLVersion 2.11 |
#include "sfldir.h" qbyte dir_usage (const char *path, Bool recurse)
Calculates the amount of disk space used by a directory, and optionally all directories below that. If the total size is greater than 4Gb, returns an unspecified value. Returns 0 if there was an error.
{
DIRST
dir;
qbyte
usage = 0;
char
*full_dir;
if (open dir (&dir, path))
do
{
if ((dir.file_attrs & ATTR_HIDDEN) != 0)
; /* Do nothing */
else
if (recurse
&& (dir.file_attrs & ATTR_SUBDIR) != 0)
{
full_dir = locate path (path, dir.file_name);
usage += dir usage (full_dir, TRUE);
mem_free (full_dir);
}
else
usage += dir.file_size;
}
while (read dir (&dir));
close dir (&dir);
return (usage);
}
| | << | < | > | >> |
|