3 # Returns the size in bytes, number of files and number of dirs in a directory
5 require './file-lib.pl';
7 &switch_acl_uid_and_chroot();
8 print "Content-type: text/plain\n\n";
9 if (!&can_list($in{'dir'})) {
10 print $text{'list_eaccess'},"\n";
12 ($size, $files, $dirs) = &recursive_dir_info($in{'dir'});
14 print $size," ",$files," ",$dirs," ",&nice_size($size),"\n";
16 # recursive_dir_info(directory)
17 sub recursive_dir_info
19 local $dir = &translate_filename($_[0]);
25 local @st = stat($dir);
26 return ($st[7], 1, 0);
29 local @st = stat($dir);
30 local ($size, $files, $dirs) = ($st[7], 0, 1);
32 local @files = readdir(DIR);
34 foreach my $f (@files) {
35 next if ($f eq "." || $f eq "..");
36 local @r = &recursive_dir_info("$dir/$f");
41 return ($size, $files, $dirs);