如何删除多文件夹下重复的文件?
时间:2011-05-24
来源:互联网
我想实现以下这样的效果:
望高手们能修改下以下代码:
以下代码只能删除当前目录下重复的文件,但不能删除多文件夹下重复的文件。
<?php
header('Content-Type: text/html; charset=gb2312');
function searchFiles( $srcPath = '', $dstFile = '*', $subDir = false ){
static $files = array();
if ( !empty( $srcPath ) ) $srcPath = rtrim( $srcPath, '/' ).'/';
$file = glob( $srcPath.$dstFile );
if ( !empty( $file ) ) $files = array_merge( $files, $file );
if ( $subDir ){
foreach( glob( $srcPath.'*', GLOB_ONLYDIR ) as $dir ){
searchFiles( $dir, $dstFile, $subDir );
}
}
return $files;
}
$files = searchFiles( './', '*.txt', true );
foreach( $files as $file ){
if ( !is_writable( $file ) ) continue;
$newname = preg_replace( '/(_\d*)*\.txt+$/i', '.txt', $file );
if ( is_file( $newname ) ) unlink($file);//如果已经存在重命名后的文件,立即删除。
rename( $file, $newname );//执行重命名
}
?>
望高手们能修改下以下代码:
以下代码只能删除当前目录下重复的文件,但不能删除多文件夹下重复的文件。
<?php
header('Content-Type: text/html; charset=gb2312');
function searchFiles( $srcPath = '', $dstFile = '*', $subDir = false ){
static $files = array();
if ( !empty( $srcPath ) ) $srcPath = rtrim( $srcPath, '/' ).'/';
$file = glob( $srcPath.$dstFile );
if ( !empty( $file ) ) $files = array_merge( $files, $file );
if ( $subDir ){
foreach( glob( $srcPath.'*', GLOB_ONLYDIR ) as $dir ){
searchFiles( $dir, $dstFile, $subDir );
}
}
return $files;
}
$files = searchFiles( './', '*.txt', true );
foreach( $files as $file ){
if ( !is_writable( $file ) ) continue;
$newname = preg_replace( '/(_\d*)*\.txt+$/i', '.txt', $file );
if ( is_file( $newname ) ) unlink($file);//如果已经存在重命名后的文件,立即删除。
rename( $file, $newname );//执行重命名
}
?>
作者: lenya 发布时间: 2011-05-24
php代码偶不会写
按偶的理解
定义一个数组,用于保存文件名列表
然后开始遍历所有文件夹
一、获取文件名,然后在数组中循环判断一下,
文件名如果已存在,则将该文件删除(说明同名的文件以前已出现过)
文件名如果不存在,则将该文件名保存到数组中(说明该文件是第一次出现)
按偶的理解
定义一个数组,用于保存文件名列表
然后开始遍历所有文件夹
一、获取文件名,然后在数组中循环判断一下,
文件名如果已存在,则将该文件删除(说明同名的文件以前已出现过)
文件名如果不存在,则将该文件名保存到数组中(说明该文件是第一次出现)
作者: ribut9225 发布时间: 2011-05-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28