Thread Probleme beim Auslesen einer Verzeichnisstruktur! (14 answers)
Opened by jason-duff at 2005-12-21 10:47

jason-duff
 2005-12-21 10:47
#61194 #61194
User since
2005-10-11
23 Artikel
BenutzerIn
[default_avatar]
hallo Leute ,
habe folgenden Code geschrieben:
ausgehend von einem Verzeichnis werden alle Unterverzeichnisse gesucht und samt dem pfad in einem array gespeichert
Code: (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
use strict; 
use File::Find;

my $var = '';
my @dirs = ();

my $startdir = '.';


sub process_item
{
next if $_ =~ /^\.\.?$/;

if (-d $_)
{
# Aus dem gesamten Pfad werden führende Punkte "../" entfernt
$var = $File::Find::name;
$var =~ s/^\.\.?\///;

push (@dirs, $var);
}
}

find(\&process_item, $startdir);

print join("\n", (@dirs);

ich bekomme dann zb folgende ausgabe:

root/Unterordner1
root/Unterordner1/unterUnterverzeichnis1
root/Unterordner2
root/Unterordner2/unterUnterverzeichnis2

Die dateien die ich später auslesen möchte befinden sich aber in den Verzeichnissen "unterUnterverzeichnis1" und "unterUnterverzeichnis2".
In dem array sind die Pfadeangaben
"root/Unterordner1" und "root/Unterordner2" für die verarbeitung nicht wichtig da ja keine Dateien darin sind.

denn ich möchte jetzt in einer Schleife alle Dateien aus denn Verzeichnissen die im @dirs stehen rekursiv in einem array einlesen und dann mit diesen Dateien weiterarbeiten.
Code: (dl )
1
2
3
4
5
6
7
8
9
for my $folder (@dirs) 
{
opendir(DIR, $folder ))
my @files = readdir(DIR);
closedir(DIR);
.
#files berarbeiten
.
}

da aber in $folder auch die Pfadangabe "root/Unterordner2 " vorkommt, findet er natürlich keine Dateien darin.

wie kann ich dieses Problem lösen , das er mir wirklich nur die Pfadangaben in dem array @dirs auflistet in dem auch nur Dateien drin sind.
wäre echt froh wenn jemand ne idee hat... gruss jason

View full thread Probleme beim Auslesen einer Verzeichnisstruktur!