2009-08-16 81 views
2

我刚刚在Windows机器上运行了PHP-CLI,因此我可以使用PHP创建脚本。但是,我正在尝试编写一个脚本来清理我的Firefox下载文件夹中超过X天的文件,但似乎无法使filemtime()函数正常工作。filemtime()在Windows下不工作PHP-CLI

这里是我写的函数:

function deleteOldFiles($dir, $days) { 
    $mydir = opendir($dir); 
    while(($file = readdir($mydir)) !== false) { 
    if($file != "." && $file != ".." && (filemtime($dir.$file) <= time() - ($days * 86400))) { 
     //unlink($dir.$file) or DIE("Failed to delete $dir$file<br />"); 
     echo filemtime($dir.$file); 
    } 
    } 
    closedir($mydir); 
} 

而且一旦运行这个我得到以下错误的每个文件:

Warning: filemtime(): stat failed for E:\My Documents\Downloadsphp-5.3.0-nts-Win32-VC9-x86.msi in E:\_scripts\cleanupDownloads\cleanupDownloads.php on line 10 

从研究,我已经做了,filemtime()应在Windows中工作。我究竟做错了什么?

+0

你可以发布$ dir的声明吗? – 2009-08-16 23:40:36

回答

3

Warning: filemtime(): stat failed for E:\My Documents\Downloadsphp-5.3.0-nts-Win32-VC9-x86.msi in E:\_scripts\cleanupDownloads\cleanupDownloads.php on line 10

你错过的目录和文件名之间的反斜杠\。不要忘记在Windows(\\)上转义它,或者使用正斜杠(/)或PHP的DIRECTORY_SEPARATOR常量。

编辑

而且看看scandir()glob()DirectoryIterator

+0

是啊,我是一个白痴,后来发现了......但是谢谢! – PHLAK 2009-08-18 05:41:45