| iMatix home page | << | < | > | >> |
SFL Version 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); }
| << | < | > | >> | Copyright © 1996-2000 iMatix Corporation |