Metainformationen zur Seite
  •  

Dateien und Verzeichnisse rekursiv verarbeiten

Diese Snippet verarbeitet Dateien und Verzeichnisse und steigt dabei auch in Unterverzeichnisse ein. Gibt den Filenamen aus wenn eine Datei gefunden wurde. Wenn ein Verzeichnis gefunden wurde wird der Name aufgerufen und DoDir rekursiv aufgerufen.

my $root = "/home/user";
DoDir($root);
 
sub DoDir {
  my $dir = shift;
  my $file;
  opendir(DIR, $dir) || die "Unable to open $dir: $!";
  my(@files) = grep {!/^\.\.?$/ } readdir(DIR);
  closedir(DIR);
  foreach (@files) {
    if (-d ($file = "$dir\\$_")) {
      print "Found a directory: $file\n";
      DoDir($file);
    } else {
      print "File: $file\n";
    }
  }
}

Diskussion

, 24.05.2015 17:55

Um im UNIX zu funktionieren, muss

$file = "$dir\\$_" 

in

$file = "$dir/$_"  

umgewandelt werden.

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
T Q L A T