ich hätte es so gemacht
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-->