当前位置: 首页 > 面试题库 >

如何在php中根据创建日期从目录中删除文件?

吕宣
2023-03-14
问题内容

我有一个存储html文件的缓存文件夹。它们在需要时会被覆盖,但是很多时候,很少使用的页面也会被缓存在那里,最终只会占用空间(5周后,驱动器已满了270万个缓存文件)。

循环访问包含数十万个文件的目录并删除早于1天的文件的最佳方法是什么?


问题答案:

我认为您可以通过使用readdir遍历目录并根据时间戳删除来解决此问题:

<?php
$path = '/path/to/files/';
if ($handle = opendir($path)) {

    while (false !== ($file = readdir($handle))) { 
        $filelastmodified = filemtime($path . $file);
        //24 hours in a day * 3600 seconds per hour
        if((time() - $filelastmodified) > 24*3600)
        {
           unlink($path . $file);
        }

    }

    closedir($handle); 
}
?>

if((time() - $filelastmodified) > 24*3600)将选择的文件超过24小时(24周小时时间每小时3600秒)以上。如果需要几天,则对于一周以上的文件,它应显示为例如7 * 24 * 3600。

另外,请注意,它filemtime返回文件的最后修改时间,而不是创建日期。



 类似资料:
  • 问题内容: 我有一个带有一堆文件的文件夹。我需要删除7月1日之前创建的所有文件。如何在bash脚本中做到这一点? 问题答案: 我认为以下应该做您想要的: 第一行创建一个文件,该文件最后一次修改是在2010年7月1日。第二行在/ path / to / file中找到日期不比虚拟文件新的所有文件,然后将其删除。 如果要再次检查它是否可以正常工作,请删除该参数,它只应列出将要删除的文件。

  • 问题内容: 如果要在中创建文件,可以执行以下操作: 另外,我想用于创建文件。那我该怎么办呢?由于某种原因,该文件未在正确的目录中创建。 问题答案: 最好的方法是:

  • 我是Camel的新手,正在探索使用Camel从特定目录删除文件的方法。我想知道基于过滤器从目录中删除文件的不同方法,如删除所有。txt文件或删除20天内未修改的文件等。

  • 我试图在根目录外的文件夹中保存一个文件,然后读取它的内容。 例如,我的工作目录是/var/www/html/project_folder,我想将文件保存在/var/www/new_folder中 我使用的是Laravel5.2,所以我的根路径是/var/www/html/project\u folder/public 我已授予新文件夹的所有权限。我尝试了$\u SERVER['DOCUMENT\u

  • 我有一个表格管理器,其中有日期、电话号码、用户等列。 我想从2014年1月1日至2014年1月31日之间的表格中检索记录,比如说我想要电话号码。该操作就像每天将50到100个数字插入表中一样,我想查看在特定的星期或特定的日期间隔插入的数字。 我使用的是postgres,我的日期列是varchar类型。我试图在一个java web应用程序中实现这一点,并且将使用jquery日期选择器来选择日期。 样

  • 在7.1节中介绍过,Entry的getDirectory和getFile方法可以获取和创建子目录和文件,在本节将主要讲解创建目录和文件。同时也会介绍删除目录和文件的方法。 在调用getDirectory方法时,如果在参数对象中指定create属性为true,则会创建相应的子目录,如: chrome.fileSystem.chooseEntry({type: 'openDirectory'}, fu