Thread Anzahl der Files > 1 Kb Bestimmen
(7 answers)
Opened by neila_1982 at 2009-04-21 10:50
Ich weiß garnicht wo ich anfangen soll...
Der Code enthält so viele Seltsamkeiten: Was soll das?! Du schließt das Handle ja nichtmals, du überschreibst es, da muß perl irgendwan versagen! Irgendwann kann perl keine weiteren Handles öffnen! Um die Anzahl der Einträge zu bekommen schreibt man: Code (perl): (dl
)
my $anzahl=@eintraege; Die Stelle ist noch besser: Code (perl): (dl
)
1 2 3 4 5 6 foreach (@eintraege) { print @eintraege[$zaehler]; $zaehler++; if($zaehler>0){return 1;} } Das printet den ersten Eintrag und gibt 1 zurück wenn die Liste nicht leer ist. warum schreibst du nicht: versuch es mal so: Code (perl): (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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 #!/usr/bin/perl use strict; use warnings; use File::stat; my $path = 'C:\Dokumente und Einstellungen'; open (my $out,'>', 'file_count.csv') or die "$!\n"; print ($out "Counts of files in a directory \n"); &funktAusgabe($path); close $out; sub funktAusgabe { my $local_time = localtime(); my ($ordner)=@_; my @eintraege = read_dir($ordner); my $anzDateien=@eintraege; my $anzDateien2=0; foreach my $eintrag (@eintraege) { if(-d $eintrag) { funktAusgabe($eintrag); } elsif(stat($eintrag)->size() >= 1024) { $anzDateien2++; } } print($out "$local_time;$anzDateien;$anzDateien2;$ordner\n"); } sub read_dir { my $dir=shift(@_); opendir( my $dfh, $dir) or die "$!\n"; my @filelist=readdir($dfh); closedir($dfh); my @output; for (@filelist) { if($_ ne '.' and $_ ne '..') { my $filename="$dir\\$_"; push(@output, $filename); } } return @output; } |