Php-文件夹上次修改日期时间-



我正在编写创建所有文件和文件夹列表的脚本,下一次运行时,我想检查文件夹是否自上次以来被修改过,如果没有,这次将文件夹从读取中排除,

我使用filemtime()和stat()函数,

它可以工作,当我在子文件夹中添加新文件时,日期会更改,但如果我在文件夹中编辑文件,则使用这些功能,文件夹上次修改的日期id不会更改。

有没有一种方法可以检查文件夹中的文件是否已编辑,而不必逐一检查所有文件??

这个脚本会经常运行,所以我不想,所以它每次都会遍历所有文件和文件夹,(在一些文件夹中有很多文件)

filemtime()返回写入文件的数据块的时间,即文件内容更改的时间。现在文件夹也是一个special file,它包含关于文件夹中包含的文件的信息,我所理解的是,当你在文件夹上使用filemtime()时,它显示了文件夹(文件)的byte-size更改时的情况。因此,当你向文件夹中添加一个文件时,会在文件夹中创建一个关于该文件的条目(特殊文件),其byte-size会发生变化,但当你编辑一个已经存在的文件时,文件夹的字节大小不会发生变化,因此filemtime()不会显示变化。

这可以工作:

function foldermtime($dir) {
    $foldermtime = 0;
    $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::CURRENT_AS_FILEINFO;
    $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, $flags));
    while ($it->valid()) {
        if (($filemtime = $it->current()->getMTime()) > $foldermtime) {
            $foldermtime = $filemtime;
        }
        $it->next();
    }
    return $foldermtime ?: false;
}
var_dump(foldermtime(__DIR__));

相关内容

  • 没有找到相关文章

最新更新