Thread Verzeichnisse selectiv löschen (21 answers)
Opened by Escape at 2010-02-10 15:14

Escape
 2010-02-10 15:14
#132523 #132523
User since
2008-07-24
312 Artikel
BenutzerIn
[default_avatar]
Ich habe die folgende Funktion:
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
#-#############################################
sub del_upl_files {
#-#############################################
my $usr_path = '/var/www/htdocs/usrUpl';
my $dir;
local $_;

opendir(UPL_DIR, $usr_path) or return;

while (defined($dir = readdir UPL_DIR)) {
$dir =~ /^\./ && next;

opendir(USR_DIR, "$usr_path/$dir") or next;

if (time - ((stat(USR_DIR))[8]) > 60) {
my @files = grep /\.dat$/, readdir USR_DIR;
closedir USR_DIR;
unlink "$usr_path/$dir/$_" for @files;
rmdir "$usr_path/$dir";
next;
}

closedir USR_DIR;
}

closedir UPL_DIR;
}

und will damit Verzeichnisse löschen die älter als 60 Sekunden sind.

Trotz der Zeile:
Code: (dl )
            opendir(USR_DIR, "$usr_path/$dir") or next;

erhalte ich im error.log des Servers:
Quote
stat() on unopened filehandle USR_DIR


Kann mir bitte jemand erklären was ich falsch mache?
Die Deutsche Rechtschreibung ist Freeware; Du darfst sie kostenlos nutzen – aber sie ist nicht Open Source, d.h. Du darfst sie nicht verändern und/oder in veränderter Form veröffentlichen.

View full thread Verzeichnisse selectiv löschen