Thread File::Find Probleme (38 answers)
Opened by HeLLo1001W at 2012-11-27 11:10

HeLLo1001W
 2012-11-27 18:13
#163683 #163683
User since
2012-11-27
19 Artikel
BenutzerIn
[default_avatar]
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.

View full thread File::Find Probleme