Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Perl/CGI » Ausführen von find mit qx(...)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.07.2005, 15:41 Uhr
Tody



Hallo zusammen,

ich habe ein script, dass mir Dateien aus bestimmten Verzeichnissen ausflisten soll:


C++:
# Verzeichnisse lesen
my @dirs = qx(find /home/bilder -type d);

# Schleife über Verzeichnisse
foreach my $dir (@dirs) {
        $body.="<br>$dir";

        # Dateien aus Verzeichnis lesen
        my @files = qx(find $dir -maxdepth 1 -type f);
        foreach my $file (@files) {
            $body.="<br> - $file";
        }
}



In $body schreibe ich html-code, der dann hinterher ausgegeben wird. ich habe nun folgendes Problem:

Beim Einlesen der Dateien läuft irgendetwas schief. Trotz der Option "-maxdepth 0" werden Dateien aus Unterverzeichnissen ausgelesen und außerdem werden Verzeichnisse angezeigt (trotz "-type f").
Wenn ich aber statt der Variablen $dir einen festen Pfad angebe, funktioniert es so wie es soll. Allerdings werden dann ja immer die Dateien aus dem angegebenen Verzeichnis angezeigt.

Kann mir jemand helfen? Weiß jemand warum ich Probleme habe, wenn eine Variable im find-Befehl vorkommt?

Vielen Dank!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.07.2005, 08:46 Uhr
Tody



Hallo,

habe die Lösung. Es lag einfach daran, dass in dem $dir-String noch ein \n am Ende hing.


C++:
chomp($dir);



hat geholfen.

Danke trotzdem!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.10.2005, 11:07 Uhr
~J-jayz-Z
Gast


Wieso machst du das mit einem system aufruf über qx// ?
Nutz doch perl interne FUnktionen. Etwa so:

Code:
opendir(PICS, "/home/bilder") || die "Kann Verzeichnis nicht öffnen: $!";
my @pics = readdir(PICS);
closdir(PICS);
my @dir, @file;
foreach(@pics) {
if(-d $_) {
push @dir, $_;
} if(-f $_) {
push @file, $_;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Perl/CGI ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: