如何限制文件夹的最大文件数

时间:2014-10-09 06:25:36

标签: php laravel

实际上iam通过php在我创建的导出文件夹中转储数据库文件。 这里我想在导出文件夹类型的FIFO方式中只保留最新的十个sql文件。 我不想太过填充文件夹,并希望限制它太十个最新文件。 怎么做?

2 个答案:

答案 0 :(得分:0)

首先使用glob获取所有文件,然后确定目录中是否有十个或更多文件。之后,检查每个mtime(修改时间)并删除最旧的。

$file_pattern = '/path/to/directory/and/files/*';
$filenames = glob( $file_pattern );

if ( count( $filenames ) > 9 ) {
    // While there are ten or more files.
    while ( count( glob( $file_pattern ) ) > 9 ) {
        $oldest_file = null;

        // Grab the unix timestamp of *now*, as filemtime returns a unix timestamp too.
        $current_oldest_time = time();

        foreach ( $filenames as $filename ) {
            $filetime = filemtime( $filename );

            if ( $filetime < $current_oldest_time ) {
                $current_oldest = $filetime;
                $oldest_file = $filename;
            }
        }

        // After the foreach you'll have the filename of the oldest file (remove it),:
        unlink( $oldest_file );

        // Or null if something went wrong (break out of the loop):
        break;
    }
}

答案 1 :(得分:-1)

您可以使用取消关联功能删除文件:http://php.net/manual/de/function.unlink.php

您只需找到目录中最旧的文件