【问题标题】:Find files in folders and subfolders that were created on the current date在当前日期创建的文件夹和子文件夹中查找文件
【发布时间】:2015-03-17 13:09:48
【问题描述】:

我正在尝试查找今天创建的文件。我在其他帖子中找到了大部分答案,但不能完全正确。下面的代码会回显所有文件,而不仅仅是今天创建的文件。有什么建议么?谢谢。

$di = new RecursiveDirectoryIterator('/documents/listings');
foreach (new RecursiveIteratorIterator($di) as $filename => $file) 
{

    if (date ("m-d-Y", filemtime($file)) == date("m-d-Y")) 

    { echo $filename . '<br/>'; }

}

【问题讨论】:

  • 为我工作。打印出今天创建的所有文件和所有时间创建的目录。
  • 抱歉,我现在看到了。挖掘输出并看到今天创建的两个文件。目录中有数百个文件,我假设当它显示所有文件夹名称时,它没有按日期过滤。如何获取找到匹配文件的文件夹名称?谢谢!
  • 文件名将返回带有文件夹名的完整路径。
  • @ris 我的最终目标是使用上述脚本检查(每天)哪些新文件已上传到我的服务器。然后使用以下命令将匹配的文件夹和文件上传到 S3 存储桶: $client->uploadDirectory($filename, 'my_bucket');但是,我不需要文件名,只需要匹配文件所在的路径/文件夹名。示例... $filename 输出:../deals/upload/documents/lists/0000Main_Street15/a_file.pdf但我只需要:../deals/upload/documents/lists/0000Main_Street15/ 我怎样才能得到没有文件名的路径?谢谢。
  • @doev "为我工作。打印出今天创建的所有文件和所有时间创建的目录。"如何让它只显示今天创建的文件/路径,而不是一直创建的目录?

标签: php spl


【解决方案1】:

首先,关于函数filemtime,它返回:文件修改时间。
但也存在函数filectime,它返回:文件的inode更改时间。
我发现 filectime 更适合您的问题,但它确实返回的文件不仅是今天创建的,而且是今天编辑的。

我的代码:

<?php

$path = dirname(__FILE__);

$objects = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($path),
    RecursiveIteratorIterator::SELF_FIRST
);
foreach ($objects as $file => $object) {
    $basename = basename($file);
    if ($basename == '.' or $basename == '..') {
        continue;
    }
    if (is_dir($file)) {
        continue;
    }
    if (date('Y-m-d') === date('Y-m-d', filectime($file))) {
        echo $file . PHP_EOL;
    }
}

【讨论】:

  • 到目前为止,这种方法最能满足我的需要。它只输出文件。然后我运行: $client->uploadDirectory($file, 'my.bucket');运行后,我注意到检查目录修改时间而不是文件可能会更好,以防有多个文件与当前日期匹配,否则每次找到文件日期匹配时都会上传整个目录。我将如何检查目录修改日期?
【解决方案2】:

您的代码对我有用。请检查文件创建日期一次。或尝试更改您过去创建的目录

【讨论】:

    【解决方案3】:
    if (!is_dir($file) && date ("m-d-Y", filemtime($file)) == date("m-d-Y")) 
    

    也许您只想显示没有目录的文件?试试这个条件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-18
      相关资源
      最近更新 更多