Thread Verzeichnis rekursiv löschen (26 answers)
Opened by hcx at 2011-07-06 19:04

Gast hcx
 2011-07-07 12:58
#150208 #150208
Hallo Dubu,

vielen Dank für deine Hinweise ich hoffe ich habe dich richtig verstanden und die Funktion entsprechend korrekt umgeschreiben.


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
27
28
29
30
31
32
33
34
35
# Funktion loescht nacheinander mittels foreach Schleife datei fuer datei im Ordner 
2 sub loesche {
3 my ($ordner) = @_; # Funktion loesche wird mit Argument $ordner aufgerufen
4 opendir(DIR, $ordner)or die "Fehler: Kann Ordner '$ordner' kann nicht oeffnen: $!\n";
5 my @remove = readdir(DIR);
6 close(DIR);
7
8 foreach my $datei (@remove){
9 if ($datei eq "." or $datei eq "..") { # . und .. sollen nicht geloescht werden
10 next;
11 elseif (-l "$ordner/$datei") {
12 print "Habe einen Link $datei gefunden loesche diesen nicht\n";
13 next; # überspinge rest der schleife überspringen
14
15 elseif (-d "$ordner/$datei") {
16 print "Habe ein Unterverzeichnis $ordner/$datei gefunden rufe die Funktion rekursiv auf \n";
17 print "Befinde mich im Unterverzeichnis $ordner/$datei \n";
18 &loesche($ordner);
19 print "Funktion rekursiv aufgerufen lösche alle Dateien im Unterverzeichnis $ordner/$datei \n";
20
21 print LOGFILE "#\n#\n#\n";
22 print LOGFILE "Habe die Datei $datei geloescht!\n";
23
24 }
25
26 }
27 } else {
28 print "Lösche jetzt die Datei $ordner/$datei \n";
29 # unlink löscht dateien im Ordner
30 unlink("$ordner/$datei") or warn "$!";
31 }
32 # rmdir($ordner) or die $!; # rmdir löscht leere Verzeichnisse also den leeren Ordner
33
}



Gruss

hcx
Last edited: 2011-07-07 13:01:01 +0200 (CEST)

View full thread Verzeichnis rekursiv löschen