※ ChatGPTを利用し、要約された質問です(原文:一定時間が経過したフォルダの削除)
一定時間が経過したフォルダの削除
このQ&Aのポイント
指定した時間内のディレクトリ削除ができないエラーの解決方法を教えてください。
フォルダ削除のために使用しているsauceが一定時間経過したディレクトリを削除できない問題が発生しています。
フォルダ内の古いディレクトリを一定期間経過後に自動的に削除する方法を教えてください。
一定時間が経過したファイル削除の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");
}
}
どうぞ宜しくお願いします。
お礼
ファイルがあっても消す方法を試しましたが、脳味噌不足で上手くいきませんでした;; ファイルを削除してからディレクトリを削除する方法で上手くいきました。 ご教示ありがとうございました。