我想删除所有超过 5 分钟的目录?
I would like To Delete All Directories That are Older Than 5 Minutes?
棘手的部分来了。每个Directory中具体有两个子目录(子目录也有的包含文件),名为lib和vendor。所以当我曾经有特定的 Dir 名称时,我曾经使用这个
<?php
$dir = $_GET['fname'];
array_map('unlink', glob("$dir/lib/*.*"));
rmdir("$dir/lib");
array_map('unlink', glob("$dir/vendor/*.*"));
rmdir("$dir/vendor");
array_map('unlink', glob("$dir/*.*"));
rmdir($dir);`
所以我曾经有一个特定的目录名称。但现在我想改变这一点。
所以每当用户被重定向到我的脚本
它应该删除所有早于 5 分钟的目录。仅有的
目录。
所有目录仅包含且仅包含 2 个名为
lib 和 vendor.They 也应该删除。
这三个目录不应该删除 project , images 和
assets.Except 这些所有目录都应该删除。现在
请有人帮助我。
你可以做到。先创建一个删除目录的函数
function deldirectory($dir){
$tfile = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS);
$files = new RecursiveIteratorIterator($tfile,
RecursiveIteratorIterator::CHILD_FIRST);
foreach($files as $file) {
if ($file->isDir()){
rmdir($file->getRealPath());
} else {
unlink($file->getRealPath());
}
}
return rmdir($dir);
}
在 foreach 循环中调用该函数来检查和删除超过 5 分钟的文件夹
foreach ($folders as $f){
$lastmodified = filemtime($f);
$farray = array("project","images","assets");//These folders are ignored
$file_life = 300;
if((time() - $lastmodified >= $file_life) && !in_array($f, $farray)){
deldirectory($f);
}
}
棘手的部分来了。每个Directory中具体有两个子目录(子目录也有的包含文件),名为lib和vendor。所以当我曾经有特定的 Dir 名称时,我曾经使用这个
<?php
$dir = $_GET['fname'];
array_map('unlink', glob("$dir/lib/*.*"));
rmdir("$dir/lib");
array_map('unlink', glob("$dir/vendor/*.*"));
rmdir("$dir/vendor");
array_map('unlink', glob("$dir/*.*"));
rmdir($dir);`
所以我曾经有一个特定的目录名称。但现在我想改变这一点。 所以每当用户被重定向到我的脚本
它应该删除所有早于 5 分钟的目录。仅有的 目录。
所有目录仅包含且仅包含 2 个名为 lib 和 vendor.They 也应该删除。
这三个目录不应该删除 project , images 和 assets.Except 这些所有目录都应该删除。现在
请有人帮助我。
你可以做到。先创建一个删除目录的函数
function deldirectory($dir){
$tfile = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS);
$files = new RecursiveIteratorIterator($tfile,
RecursiveIteratorIterator::CHILD_FIRST);
foreach($files as $file) {
if ($file->isDir()){
rmdir($file->getRealPath());
} else {
unlink($file->getRealPath());
}
}
return rmdir($dir);
}
在 foreach 循环中调用该函数来检查和删除超过 5 分钟的文件夹
foreach ($folders as $f){
$lastmodified = filemtime($f);
$farray = array("project","images","assets");//These folders are ignored
$file_life = 300;
if((time() - $lastmodified >= $file_life) && !in_array($f, $farray)){
deldirectory($f);
}
}