【发布时间】:2012-07-07 13:37:16
【问题描述】:
下面的代码会删除名为“Images”的文件夹中的所有文件。没有抱怨一切正常,但是有没有办法仅删除一个小时前或一个小时前创建的文件?请告诉我如何,我正在尝试边做边学,拜托。尝试重复使用下面的相同代码以更好地理解并帮助世界各地的 PHP 程序员用户
<?php
define('PATH', 'Images/');
function destroy($dir) {
$mydir = opendir($dir);
while(false !== ($file = readdir($mydir))) {
if($file != "." && $file != "..") {
chmod($dir.$file, 0777);
if(is_dir($dir.$file)) {
chdir('.');
destroy($dir.$file.'/');
rmdir($dir.$file) or DIE("couldn't delete $dir$file<br />");
}
else
unlink($dir.$file) or DIE("couldn't delete $dir$file<br />");
}
}
closedir($mydir);
}
destroy(PATH);
echo 'all done.';
【问题讨论】:
-
在确保您不在目录中以选择性地删除文件后,请查看使用
filemtime -
@Aaron:
filemtime返回文件最后修改的时间,而不是文件创建时间。 -
Aaron,如果您不介意使用我发布的相同代码来举例说明,有什么改变吗?我会接受你的回答,以防它达到预期,请让我更好地理解事情,也许可以帮助其他新程序员,而不是仅仅保持梦想
-
Jocelyn 什么是更好或正确的方法?请给我看看好吗
-
@Jocelyn 我读这个问题太快了,尽管如果这些文件是刚刚创建的并且事后没有修改,它仍然可以工作,因为它仍然会返回正确的时间。还取决于用于获取创建日期的文件系统。
标签: php