Thread Anzahl der Files > 1 Kb Bestimmen
(7 answers)
Opened by neila_1982 at 2009-04-21 10:50
Hallo zusammen,
Ich habe folgendes Perl Programm programmiert, dass mir die Anzahl der Files für jeden Ordner und die Anzahl Files > 1KG für jeden Ordner mit den Namen des jeweiligen Pfades pro File in einer Datei file_count.csv schreibt ( siehe unten Programm). Das Problem ist lokal zu hause bei einer kleinen Anzahl an Files funktioniert das Program einwandfrei. Jedoch in der Firma bei einer großen Anzahl im Netzwerk, hört er plötzlich mittendrin auf zu zählen und schreibt nicht weiter in der Datei rein. Was habe ich falsch gemacht??? Viele schöne sonnige Grüsse Anhang: 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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 use strict; my $login_name = getlogin; #my $path = "C:\\Dokumente und use File::stat; open (out,">file_count.csv"); print (out "Counts of files in a directory \n"); &funktAusgabe($path); close out; sub funktAusgabe() { my $zaehler=0; my $zaehler2= 0; my @ordner; my $anzDateien=0; my $anzDateien2=0; my $anzOrdner=0; my $local_time = localtime; my ($para1)=@_; opendir my $ordner,$para1; my @eintraege = readdir($ordner); foreach(@eintraege){ opendir $ordner,$para1; if($zaehler>1){ my $var=$para1.$_."\\"; push(@ordner,&funktIstOrdner($var)); if($ordner[$zaehler-2]==0){$anzDateien++;}else{$anzOrdner++;} # if($ordner[$zaehler-2]==0){$anzDateien++;} } $zaehler++; my $filesize=stat($para1.$_)->size; if($filesize>=1024){$anzDateien2++;} } $zaehler=0; foreach(@eintraege){ opendir $ordner,$para1; $zaehler++; } print(out "$local_time".";"."$anzDateien".";"."$anzDateien2".";"."$para1\n"); $zaehler=0; foreach (@eintraege) { opendir $ordner,$para1; my $var=$para1.$_."\\"; if($zaehler>1&&$ordner[$zaehler-2]==1){&funktAusgabe($var);} $zaehler++; } $zaehler2++; } sub funktIstOrdner(){ my $zaehler=0; my ($para1)=@_; opendir my $ordner,$para1; my @eintraege = readdir($ordner); foreach (@eintraege) { print @eintraege[$zaehler]; $zaehler++; if($zaehler>0){return 1;} } return 0; } |