如何删除超过特定时间的文件/文件夹

时间:2011-09-27 18:29:46

标签: php

我已经使用了一个功能,删除某个文件夹中的所有文件和文件夹。

function rrmdir($dir) {
    if (is_dir($dir)) {
        $objects = scandir($dir);
        foreach ($objects as $object) {
            if ($object != "." && $object != "..") {
                if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
            }
        }
        reset($objects);
        rmdir($dir);
    }
}

我现在要做的是:使该功能仅适用于删除超过60分钟的文件和文件夹(例如)。

有一个php函数'filetime',我认为它给出了文件/文件夹的年龄,但我不知道如何删除特别是“x”分钟以上的文件。

1 个答案:

答案 0 :(得分:10)

此构造将使用filemtime()函数删除超过60分钟(3600秒)的文件:

if (filemtime($object) < time() - 3600) {
  // Remove empty directories...
  if (is_dir($object)) rmdir($object);
  // Or delete files...
  else unlink($object);
}

请注意,要使rmdir()生效,目录必须为空。