Laravelで古いファイルを削除する方法


  1. ファイルの最終更新日時を比較して削除する方法:
use Illuminate\Support\Facades\File;
// 削除するファイルのディレクトリを指定します
$directory = 'public/uploads';
// 削除するファイルの最大保存期間を指定します(例: 30日)
$maxAge = 30;
// 削除するファイルを取得します
$files = File::allFiles($directory);
foreach ($files as $file) {
    // ファイルの最終更新日時を取得します
    $lastModified = $file->getMTime();
    // ファイルの最終更新日時と現在の日時を比較して、指定した期間より古い場合は削除します
    if (time() - $lastModified > $maxAge * 24 * 60 * 60) {
        File::delete($file);
    }
}
  1. ファイルの作成日時を比較して削除する方法:
use Illuminate\Support\Facades\File;
// 削除するファイルのディレクトリを指定します
$directory = 'public/uploads';
// 削除するファイルの最大保存期間を指定します(例: 30日)
$maxAge = 30;
// 削除するファイルを取得します
$files = File::allFiles($directory);
foreach ($files as $file) {
    // ファイルの作成日時を取得します
    $createdAt = $file->getCTime();
    // ファイルの作成日時と現在の日時を比較して、指定した期間より古い場合は削除します
    if (time() - $createdAt > $maxAge * 24 * 60 * 60) {
        File::delete($file);
    }
}

これらの方法を使用すると、指定したディレクトリ内の古いファイルを削除することができます。ファイルの最終更新日時または作成日時を比較し、指定した期間よりも古い場合に削除するコードを記述します。

なお、ファイルの保存場所や保存期間は、自身のプロジェクトの要件に合わせて適切に設定してください。