php 批量删除某种大小范围的文件
发布网友
发布时间:2022-04-06 01:25
我来回答
共5个回答
热心网友
时间:2022-04-06 02:54
简单些了个函数,参数路径,当前路径就是.
function find_dir($dirname){
$arr = array();
if( false === $dir = @opendir($dirname) ) return;
while( false !== ($tmpname = readdir($dir)) ){
if($tmpname == "." || $tmpname == "..") continue;
if($tmpname){
$info = pathinfo($tmpname);
if ( $info['extension'] != 'cache' ) continue;
$size = filesize($tmpname)/1024;
if ( $size < 10 || $size > 30 ) continue;
unlink($tmpname);
}
}
return $arr;
}
补充:这个问题很简单,你可以把你要删除的路径定义下,然后循环调用,如:
$path = array(
'xx/xx/',
'xx/yy/',
'xx/zz/'
);
注:这里是定义路径,不带文件名或后缀
foreach ( $path as $v ){
find_dir($v);
}
热心网友
时间:2022-04-06 04:12
<?php
set_time_limit(0);
$dir = dirname(__FILE__);
$dirarr = scandir($dir);
foreach($dirarr as $subdir){
if($subdir != '.' && $subdir != '..'){
$path = $dir.'/'.$subdir;
$files = glob($path.'/*.cache');
foreach($files as $file){
if(filesize($file) > 1024000 && filesize($file) <3072000)
unlink($file);
}
}
}
echo '删除成功!';
?>
把这个保存到你的总文件夹下,命名为del.php,然后运行删除
热心网友
时间:2022-04-06 05:47
Unix???
man find;
<?php
`find /path/ -name *.cache -f |xarg rm`
?>
===========================================
windows,楼上给你写的这个也可以的.....
把这句
//Windows下没用的
if($tmpname == "." || $tmpname == "..") continue;
你的Folder不是A套B,B套C吧。。。
C:\A\B\C\10.cache
如果是这样,上面的这位得给你重新写。。。
热心网友
时间:2022-04-06 07:38
如果想学编程还是可以练习一下,如果为了完成工作,TOTALCMD做这个很方便。
热心网友
时间:2022-04-06 09:46
找个玩龙.10腾世0.界的