遍历文件夹-php
//统计某个目录的大小
<?php header('content-type:text/html;charset=utf-8'); //统计某个目录的大小 /** @function 统计目录大小 @param $dirname 路径 @return int */ function getDirSize($dirname) { $dirsize = 0; //打开目录 $dir = opendir($dirname); //循环的读取该目录的所有文件及其子目录 while (false !== ($filename = readdir($dir))) { // $file 表示该文件或者目录全路径 $file = $dirname . '/' . $filename; //如果 是 . 或者 .. 不做处理 if ($filename != "." && $filename != "..") { //判断是不是一个目录 //如果是目录,就递归统计 if (is_dir($file)) { $dirsize += getDirSize($file); } else { //如果是文件就直接计算大小 $dirsize += filesize($file); } } } closedir($dir); return $dirsize; } //测试一下 $dir_path = 'd:/www'; echo getDirSize($dir_path);
遍历删除目录
<?php header('content-type:text/html;charset=utf-8'); //递归的删除目录及其子目录 /** @function 删除一个目录及其子目录 @param $src 删除哪个目录 */ function rrmdir($src) { //打开一个目录 $dir = opendir($src); //遍历整个目录 while(false !== ( $file = readdir($dir)) ) { //如果是 . 或者 .. 不做出来 if (( $file != '.' ) && ( $file != '..' )) { //得到这个文件的全路径 $full = $src . '/' . $file; //如果是目录,就递归删除 if ( is_dir($full) ) { rrmdir($full); } //如果不是目录,就直接删除 else { unlink($full); } } } closedir($dir); //当发现这个目录是空目录时,就删除目录本身. rmdir($src); } //测试.. $dir_path = 'd:/www'; rrmdir($dir_path); echo '删除 目录 成功!';
遍历拷贝目录
<?php header('content-type:text/html;charset=utf-8'); //拷贝目录: //定义一个常量,是目录的分割符号 define('DS', DIRECTORY_SEPARATOR); /** @function 拷贝一个目录的所有文件和子目录到 另外目录 @param $path 源目录 (被拷贝) @param $dest 目标目录 (拷贝到哪里去) */ //需求 // d:/test 目录 拷贝 到 f:/test 目录 function copy_r( $path, $dest ) { //先判断 源目录 是否存在? //如果是目录,就准备递归拷贝 if( is_dir($path) ) { //尝试创建 目标目录 @mkdir( $dest ); //这里 scandir 就是将该目录的所有文件和目录放到一个数组中. $objects = scandir($path); //如果该目录的内容[文件和子目录]>0 if( sizeof($objects) > 0 ) { //经典的对数组的遍历. foreach( $objects as $file ) { //如果是 . 或者 .. 不处理 [php基础] if( $file == "." || $file == ".." ) continue; // go on //如果是目录,就递归拷贝 if( is_dir( $path.DS.$file ) ) { copy_r( $path.DS.$file, $dest.DS.$file ); } else { //如果是文件就直接拷贝 copy( $path.DS.$file, $dest.DS.$file ); } } } return true; } elseif( is_file($path) ) { //如果是文件,就直接拷贝 return copy($path, $dest); } else { //如果不是文件和目录,就不拷贝 return false; } } //做一个测试工作 $src_path = 'd:/test'; $dest_path = 'f:/test'; copy_r($src_path, $dest_path); echo 'ok';
文章来源:刘俊涛的博客 欢迎关注公众号、留言、评论,一起学习。
若有帮助到您,欢迎捐赠支持,您的支持是对我坚持最好的肯定(_)