Verzeichnis und Unterverzeichnisse auslesen
Herbert Nassl
- cgi
0 Erwin
Hallo,
ich will mit dem folgenden Script alle Verzeichnisse inkl. Unterverzeichnisse nach Daten durchsuchen und diese im Array @files abspeichern. Irgendwo steckt noch ein fehler drin, aber ich finde ihn nicht. Die Verzeichnisse bzw. Unterverzeichnisse werden korrekt in das Array @Dirs abgelegt. Die Zuordnung der Dateien zu den Verzeichnissen funktioniert nicht richtig.
Ich wäre sehr dankbar, wenn sich jemand das Script mal anschaut und mir weiterhilft.
Danke Euch
Herbert
@temp = &mySearch("./");
exit(0);
sub mySearch()
{
@Dirs = ();
@files = ();
$Dirs[0] = $_[0];
MYSEARCH: {
foreach $temp0 (@Dirs) {
shift @Dirs;
opendir(MYDIR, $temp0);
foreach $temp1 (readdir MYDIR) {
if( ($temp1 !~ /.\w{2,4}/) && ($temp1 ne ".") && ($temp1 ne "..") ) {
push @Dirs, $temp0 . "/" . $temp1;
} elsif (($temp1 ne ".") && ($temp1 ne "..") )
{
push @files, ([$temp1, $temp0]);
}
}
}
if(@Dirs) { redo MYSEARCH; } } return @files;}
Hallo,
ich will mit dem folgenden Script alle Verzeichnisse inkl. Unterverzeichnisse nach Daten durchsuchen und diese im Array @files abspeichern. Irgendwo steckt noch ein fehler drin, aber ich finde
Hmm. Wie wärs damit:
use File::Find;
my $startdir = '/usr/local';
my @files;
find(&scan, $startdir);
sub scan{
if(-f $File::Find::name){ push @files, $File::Find::name }
}
Erwin
Vielen Dank Erwin,
da sieht man gleich wo die Profis sind und wie umständlich ich das Problem lösen wollte.
So long Herbert