| iMatix home page
| << | < | > | >>
SFL Logo SFL
Version 2.11

 

dir_usage

#include "sfldir.h"
qbyte
dir_usage (const char *path, Bool recurse)

Synopsis

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.

Source Code - (sfldir.c)

{
    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);
}

| << | < | > | >> iMatix Copyright © 1996-2000 iMatix Corporation