my $entscheidung = ; chomp($entscheidung); if($entscheidung eq 'j') { print "#\n#ALLE Dateien in $ordner werden gelöscht\n#\n"; }else { print "#\n#Breche das Programm ab \n#\n"; die; } ############################################################################################################################ opendir(DIR, $ordner)or die "Fehler: Kann Ordner '$ordner' kann nicht oeffnen: $!\n"; my @remove = readdir(DIR); close(DIR); ############################################################################################################################ open(LOGFILE, $log_datei) or die "Kann LOG_Datei $log_datei nicht oeffnen: $!\n"; &loesche($ordner); print "#\n#\n# Schreibe ab jetzt in Log Datei $log_datei !\n#\n#\n"; open(LOGFILE, ">$log_datei") or die "Kann LOG_Datei $log_datei nicht oeffnen: $!\n"; close LOGFILE; sub loesche { my $ordner = shift(@_); opendir(DIR, $ordner) or die("ERROR OPEN $ordner ($!)\n"); my @remove = readdir(DIR); closedir(DIR); for my $datei (@remove){ my $pfad="$ordner/$datei"; if ($pfad eq "." or $datei eq "..") { next; } # . und .. sollen nicht geloescht werden if(-l $pfad) { next; } # Wenn die Datei ein systemlink ist, nicht löschen Schleife überspringen if(-d $pfad) { loesche($pfad); } # Wenn die Datei ein Unterverzeichnis ist löschen if(-f $pfad) { unlink($pfad); } # Wenn es eine datei ist löschen } # Ende der for Schleife # Überprüfen, ob sich noch Dateien im Unterverzeichnis befinden my $datei; opendir(DIR, "$ordner/$datei"); my @test = grep { "$ordner/$datei" ne "." && "$ordner/$datei" ne ".." } readdir(DIR); closedir DIR; if(@test) { print "Verzeichnis enthält noch Dateien, lösche es nicht \n"; } else { rmdir($ordner); } # Ende sub [/b]