【发布时间】:2020-02-07 01:06:30
【问题描述】:
我只想在一个文件夹中保留 10 个最新文件并删除其他文件。 我创建了一个脚本,如果文件号大于 10,则只删除最旧的。 我怎样才能使这个脚本适应我的需要?
$directory = "/home/dir";
// Returns array of files
$files = scandir($directory);
// Count number of files and store them to variable..
$num_files = count($files)-2;
if($num_files>10){
$smallest_time=INF;
$oldest_file='';
if ($handle = opendir($directory)) {
while (false !== ($file = readdir($handle))) {
$time=filemtime($directory.'/'.$file);
if (is_file($directory.'/'.$file)) {
if ($time < $smallest_time) {
$oldest_file = $file;
$smallest_time = $time;
}
}
}
closedir($handle);
}
echo $oldest_file;
unlink($oldest_file);
}
【问题讨论】:
-
将所有文件推入一个数组(名称和时间),排序和删除你需要的。
-
好吧,
$files已经是一个数组了。为什么不使用它而不是使用opendir?
标签: php delete-file