1 <?php 2 /* 3 * Version 1.0 4 * 2014-12-11 5 * 文件夹的操作 6 * 删除,大小统计,移动,复制 7 * 文件夹的分割使用linux方式 8 * 9 */ 10 //文件间的删除 11 function delete_dir($dir){ 12 $dir = rtrim(str_replace("\\","/",$dir),'/').'/';//统一格式,避免格式问题出错 13 if(!file_exists($dir)){ 14 exit("{$dir} is not exists!Check your input!"); 15 } 16 $dh = opendir($dir); 17 readdir($dh); 18 readdir($dh); 19 while($fileName = readdir($dh)){ 20 $newFileName = $dir.$fileName; 21 if(is_file($newFileName)){ 22 if(unlink($newFileName)){ 23 echo 'File Delete '.$newFileName.' Successfully!<br />'; 24 } 25 }else if(is_dir($newFileName)){ 26 $newDir = $newFileName.'/'; 27 delete_dir($newDir); 28 }else{ 29 echo "{$newFileName} Unkown File Type!<br />"; 30 } 31 } 32 closedir($dh); 33 if(rmdir($dir)){ 34 echo 'Delete Dir '.$dir.' Successfully!<hr />'; 35 } 36 } 37 //文件夹大小统计 38 function calc_dir($dir){ 39 $dir = rtrim(str_replace("\\","/",$dir),'/').'/'; 40 if(!file_exists($dir)){ 41 exit("{$dir} is not exists!Check your input!"); 42 } 43 $dh = opendir($dir); 44 $size = 0; 45 readdir($dh); 46 readdir($dh); 47 while($fileName = readdir($dh)){ 48 $newFileName = $dir.$fileName; 49 if(is_file($newFileName)){ 50 $size += filesize($newFileName); 51 }else if(is_dir($newFileName)){ 52 $newDir = $newFileName.'/'; 53 $size += calc_dir($newDir); 54 }else{ 55 echo "{$newFileName} Unkown File Type!<br />"; 56 } 57 } 58 closedir($dh); 59 return $size; 60 } 61 //文件夹的移动 62 function cut_dir($dir,$des){ 63 //$dir待移动目录,$des目标目录 64 if(!file_exists($dir)){ 65 exit($dir.' is not exists!Please check your input!'); 66 } 67 if(!file_exists($des)){ 68 mkdir($des); 69 } 70 $dir = rtrim(str_replace("\\","/",$dir),'/'); 71 if(strrpos($dir,'/')){ 72 $subdir = substr($dir,strrpos($dir,'/')+1); 73 }else{ 74 $subdir = $dir; 75 } 76 $dessub = rtrim(str_replace("\\","/",$des),"/").'/'.$subdir.'/'; 77 $dir = $dir.'/'; 78 if(!file_exists($dessub)){ 79 mkdir($dessub); 80 } 81 $dh = opendir($dir); 82 readdir($dh); 83 readdir($dh); 84 while($fileName = readdir($dh)){ 85 $newFileName = $dir.$fileName; 86 if(is_file($newFileName)){ 87 if(rename($newFileName,$dessub.$fileName)){ 88 echo $newFileName.'已经移动完成!<br />'; 89 } 90 } 91 if(is_dir($newFileName)){ 92 cut_dir($newFileName,$dessub); 93 } 94 } 95 closedir($dh); 96 if(rmdir($dir)){ 97 echo $dir.'内的文件已经全部移动完成!<hr />'; 98 } 99 } 100 //文件夹的复制 101 function copy_dir($dir,$des){ 102 //$dir待移动目录,$des目标目录 103 if(!file_exists($dir)){ 104 exit($dir.' is not exists!Please check your input!'); 105 } 106 if(!file_exists($des)){ 107 mkdir($des); 108 } 109 $dir = rtrim(str_replace("\\","/",$dir),'/'); 110 if(strrpos($dir,'/')){ 111 $subdir = substr($dir,strrpos($dir,'/')+1); 112 }else{ 113 $subdir = $dir; 114 } 115 $dessub = rtrim($des).'/'.$subdir.'/'; 116 $dir = $dir.'/'; 117 if(!file_exists($dessub)){ 118 mkdir($dessub); 119 } 120 $dh = opendir($dir); 121 readdir($dh); 122 readdir($dh); 123 while($fileName = readdir($dh)){ 124 $newFileName = $dir.$fileName; 125 if(is_file($newFileName)){ 126 if(copy($newFileName,$dessub.$fileName)){ 127 echo $newFileName.'已经拷贝完成!<br />'; 128 } 129 } 130 if(is_dir($newFileName)){ 131 copy_dir($newFileName,$dessub); 132 } 133 } 134 closedir($dh); 135 }
2379




被折叠的 条评论
为什么被折叠?



