一分钟后删除目录中的文件

时间:2012-06-07 14:49:04

标签: php timing

我认为这个问题几次被问到,我已经完成了并且正在使用网上的一些代码。现在我遇到了时间问题。

让我先提供代码:

<?php
   $pathToDir = getcwd();               

   $pathToFilesDir = $pathToDir . '\files';

   $pathToFiles = $pathToFilesDir . '\\';

    if ($handle = opendir($pathToFilesDir)) {

        while (false !== ($file = readdir($handle))) { 

            $filelastmodified = filemtime($file);

            if ($file != '.' && $file != '..'){               

                if((time() - $filelastmodified) > 60 && is_file($file)){

                    unlink($pathToFiles . $file);

                }                
            }                 
        }
        closedir($handle); 
    }

?>

这就是我尝试的,自动删除一分钟之前的文件。仅仅为了测试目的,我试了一分钟。结果是文件不会被删除。另一方面,我刚刚删除了这个时间条件

if((time() - $filelastmodified) > 60 && is_file($file))

并运行脚本,可以立即删除文件。

任何人都可以发现我所犯的错误吗?

由于 Raaks

1 个答案:

答案 0 :(得分:0)

这里我的代码按生命周期检查缓存,它工作正常。

if (is_file($dir.$file) && is_readable($dir)) {
    if ($lifetime) {
        @clearstatcache();
        if ((time() - @filemtime($dir.$file)) < $lifetime) {
            return file_get_contents($dir.$file); # Return the cache
        } else {
            @unlink($dir.$file); # Cache has expired
        }
    } else {
        return file_get_contents($dir.$file); # Return the cache
    }
} return null; # Cache not found