プロが教えるわが家の防犯対策術!

一定時間が経過したファイル削除のsauceを使って、サーバーのディレクトリを削除しようとしましたが指定した時間内のディレクトリが削除できません。間違っている個所をご指摘くださいますようお願い致します。


#古いディレクトリの削除
$dir='./z';
opendir(DIR, "$dir");
my @dirlist = grep /^*/, readdir DIR;
closedir(DIR);

my $expire_t = 15552000; #180日以上経過したファイル指定  (1日は86400)
my $expire_d = 31536000; #365日以内に生成されたファイル指定
my $now = time;
foreach my $deldir (@dirlist){
my $mtime = (stat("$dir/$deldir"))[9];
if ($now > $mtime + $expire_t && $now < $mtime + $expire_d){
rmdir("$dir/$deldir");
}
}


どうぞ宜しくお願いします。

A 回答 (1件)

消したいディレクトリの中にファイルが入っていませんか?


まずは、ファイルを全て消してから、ディレクトリを削除してください。

または、ファイルがあっても消す方法が参考URLにありましたので、参照してみてください。

参考URL:http://itpro.nikkeibp.co.jp/article/Reference/20 …
    • good
    • 0
この回答へのお礼

ファイルがあっても消す方法を試しましたが、脳味噌不足で上手くいきませんでした;;
ファイルを削除してからディレクトリを削除する方法で上手くいきました。
ご教示ありがとうございました。

お礼日時:2012/08/27 10:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!