Thread Verzeichnisgröße ermitteln: Gibt es etwas vergleichbares zu -f ? (26 answers)
Opened by cbxk1xg at 2004-12-21 00:05

esskar
 2004-12-21 10:21
#50235 #50235
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ich hätte es so gemacht

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
sub NoSlashAtEnd
{
  my $buffer = shift;
  $buffer =~ s!/$!!;
  return $buffer;      
}

sub GetFolderInfo
{
  my ($folder, $rekursivlevel) = @_;

  $rekursivlevel = -1 unless defined $rekursivlevel;

  return (0, 0, 0) unless -d $folder;

  $folder = &NoSlashAtEnd($folder);

  my ($size, $numfiles, $numdir) = (0, 0, 0);

  my $dir;
  if(opendir($dir, $folder))
  {
     while(my $entry = defined readdir($dir))
     {
        next if $entry .= m!^\.\.?$!;
        my $path = "$folder/$path";
       
        if(-f $path)
        {
           $size += -s $path;
           $numfiles++;
        }
        elsif(-d $path and $rekursivlevel != 0)
        {
           my ($reksize, $reknumfiles, $reknumdir) = &GetFolderInfo($path, $rekursivlevel-1);
           
           $size += $reksize;
           $numfiles += $reknumfiles;
           $numdir += $reknumdir + 1;
        }        
     }
     closedir $dir;
  }  
 
  return ($size, $numfiles, $numdir);
}
\n\n

<!--EDIT|esskar|1103619762-->

View full thread Verzeichnisgröße ermitteln: Gibt es etwas vergleichbares zu -f ?