Thread File::Find Probleme
(38 answers)
Opened by HeLLo1001W at 2012-11-27 11:10
Das Problem hat sich aber erledigt. Es ist geschafft.
Ich habe ganz einfach mal $File::Find::no_chdir = 1 gesettz und dann ist mir aufgefallen, dass auf Extern 2 eine Log-File entsteht, in der alle Pfade stehen. Die Fehlermeldungen sind dabei jetzt auch verschwunden. Das war eigentlich grad reiner Zufall, dass ich darauf gestoßen bin. Dennoch vielen vielen Dank für deine Hilfe. Nochmal eine kurze Erläuterung was der Code macht. Dieses Skript liest alle Pfade aus, ab dem Pfad, der in der Variable $start festgelegt wird. Hier ist es eine externe Festplatte. In der Sub wanted wird festgelegt, welche Ordner nicht mit eingebunden werden sollen. Hier ist der fertige Code: 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 #!/usr/bin/perl -w #Libaries use strict; use warnings; use File::Find; no warnings 'File::Find'; binmode(STDIN, ":encoding(cp437)"); binmode(STDOUT, ":encoding(cp437)"); #Variablendeklaration my $file; my $ordner; my $start = "K:/"; my @dir; system('cls'); find(\&wanted, $start); sub wanted { $File::Find::no_chdir = 1; $file = $File::Find::name."/"; #Ordnerfilter(jetzt werden nur die Systemordner gefiltert) if($file =~ /\$RECYCLE.BIN/) { $file = ""; } if($file =~ /System Volume Information/) { $file = ""; } #Schreiben der Pfad in Array @dir if($file ne "") { push @dir, $file if (-d $file); } } #Ausgabe aller Ordnerpfade foreach $ordner(@dir) { print $ordner."\n"; } Dieser Code darf frei verwendet werden. |