#!/usr/bin/perl -w use strict; use Time::HiRes qw(gettimeofday tv_interval); my $t0 = [gettimeofday]; my $base_path = "K:/CAD_FAB"; if (!defined($base_path) || $base_path eq '') { die "You need to specify a directory (e.g. 'dir_bot.pl subfolder')!\n"; } my @directorys; my @files_erg; # Durchsucht rekursiv den Path nach Dateien und Verzeichnissen process_files ($base_path); print "\nAnzahl pdw-Files:".scalar(@files_erg)."\n"; # benötigte Zeit ausgeben my $sec = tv_interval($t0); my $min = int($sec/60); my $ms = $1 if( ($sec =~ /\.(\d)/)); $sec = $sec%60; print "\nDie Ausfuehrung dauerte ".$min." Minuten und ".$sec.".".$ms." Sekunden.\n"; exit; # Durchsucht rekursiv den Path nach Dateien .pdw (Unterverzeichnisse eingeschlossen) sub process_files { my $path = shift; opendir (DIR, $path) or die "Unable to open $path: $!\n"; my @files = grep { !/^\.\.?$/ && !-d $_ } readdir (DIR); closedir (DIR); @files = map { $path . '/' . $_ } @files; foreach(@files){ unless(-d $_){ if( $_ =~ /.*\.pdw/ ){ print $_."\n"; push(@files_erg, $_); } } else{ #push(@directorys, $_); process_files ($_); } } }