1、删除目录下所有的文件和文件夹,采用了递归的方式循环去删除
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | /** * 删除目录下所有的文件和文件夹 * $dirname 表示的目录的路径 * return 的当前的要删除的目录的路径,空目录 */ function rmdirr( $dirname ) { if (! file_exists ( $dirname )) { return false; } if ( is_file ( $dirname ) || is_link ( $dirname )) { return unlink ( $dirname ); } $dir = dir ( $dirname ); while ( false !== $entry = $dir ->read () ) { if ( $entry == '.' || $entry == '..' ) { continue ; } $this ->rmdirr ( $dirname . DIRECTORY_SEPARATOR . $entry ); } $dir ->close (); return rmdir ( $dirname ); } |
2、计算文件的大小
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /** * 计算文件的大小, * @param int $size 文件的大小,返回的大小有k,kb m */ function Byte_Change( $size ) { if ( $size <= 1024) { $num = floor ( $size * 100 ) / 100; $ext = "K" ; } elseif ( $size <= 1048576 and $size > 1024) { $num = floor ( ( $size / 1024) * 100 ) / 100; $ext = "KB" ; } elseif ( $size > 1048576) { //$size<=1073741824 and $num = floor ( ( $size / 1048576) * 100 ) / 100; $ext = "MB" ; } return $num . " " . $ext ; } |
3、先删除目录下所有的文件,这个不删除文件夹
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | /** *先删除目录下所有的文件 * 返回的是true ,错误返回false */ function deldir( $dir ) { $dh = opendir ( $dir ); while ( $file = readdir ( $dh ) ) { if ( $file != "." && $file != ".." ) { $fullpath = $dir . "/" . $file ; if (! is_dir ( $fullpath )) { unlink ( $fullpath ); } else { deldir ( $fullpath ); } } } closedir ( $dh ); //删除当前文件夹: if ( rmdir ( $dir )) { return true; } else { return false; } } |
4、计算目录的大小或者文件夹的大小
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /** * 返回目录的大小,及文件夹的大小 * $dir 目录的路径 * return 目录的文件夹的大小 */ function dir_size( $dir ) { if (!preg_match( '#/$#' , $dir )) { $dir .= '/' ; } $totalsize = 0; //调用文件列表 foreach (get_file_list( $dir ) as $name ) { $totalsize += (@ is_dir ( $dir . $name ) ? dir_size( "$dir$name/" ) : (int)@ filesize ( $dir . $name )); } return $totalsize ; } |
5、获取文件夹下的文件和文件夹列表(列出所有的文件)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /** * 获取文件夹下的列表 * $path 目录的路径 * return 返回文件夹下所有文件和文件夹名组成的数组 */ function get_file_list( $path ) { $f = $d = array (); //获取所有文件 foreach (get_all_files( $path ) as $name ) { if (@ is_dir ( $path . $name )) { $d [] = $name ; } else if (@ is_file ( $path . $name )) { $f [] = $name ; } } natcasesort( $d ); natcasesort( $f ); return array_merge ( $d , $f ); } |
6、 获取文件夹下的所有的文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /** * 获取文件夹下的列表 * $path 目录的路径 * return 返回文件夹下所有文件名组成的数组 */ function get_all_files( $path ) { $list = array (); if (( $hndl = @opendir( $path )) === false) { return $list ; } while (( $file =readdir( $hndl )) !== false) { if ( $file != '.' && $file != '..' ) { $list [] = $file ; } } closedir ( $hndl ); return $list ; } |
8、创建一个文件的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | /** * 创建一个文件的方法 * $filename 文件的路径,必须加上文件名,比如:/media/example.txt * $message 写入文件的内容 * $mode 写入的模式 a a+ w w+ 等等 * 写入成功后返回true ,失败返回false */ function crateFile( $filename , $message , $mode = "w+" ) { if (! file_exists ( $filename )){ die ( "文件" . $filename . " 不存在" ); } $fp = fopen ( $filename , $mode ); //打开文件指针,创建文件 if ( ! is_writable ( $filename ) ){ die ( "文件:" . $filename . "不可写,请检查!" ); } $result =fwrite( $fp , $message ); fclose( $fp ); //关闭指针 if ( $result ){ return true; } else { return false; } } |
9、删除某个目录下的某个文件名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /** * 本方法删除path路径下name文件 * * @param string_type path * @param string_type name */ function del_file( $path , $name ){ //删除文件 $filename = $path . $name ; if (! file_exists ( $filename )) { die ( "文件不存在,请确认路径是否正确" ); } else { if (unlink( $filename )){ return true; } return false; } } |
10、本方法用来复制name文件从spath到dpath
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /** * 本方法用来复制name文件从spath到dpath * * @param string name 文件名 * @param string spath 原目标路径 * @param string dpath 目的路径 */ function copy_file( $name , $spath , $dpath ) //文件复制 { $filename = $spath . $name ; if ( file_exists ( $filename )) { $handle = fopen ( $filename , 'a' ); copy ( $filename , $dpath . $name ); if ( file_exists ( $dpath . $name )) return true; else return false; } else die ( "文件不存在" ); } |
11、本方法把name文件从spath移动到path路径
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /** * 本方法把name文件从spath移动到path路径 * * @param string_type path * @param string_type dirname * @param string_type dpath */ function move_file( $name , $spath , $dpath ) //移动文件 { $filename = $spath . $name ; if ( file_exists ( $filename )) { $result =rename( $filename , $dpath . $name ); if ( $result ==false or ! file_exists ( $dpath )) die ( "文件移动失败或目的目录不存在" ); else return true; } else { return false; } } |
12、本方法把filename文件重命名为newname文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /** 本方法把filename文件重命名为newname文件 * * @param string_type filename url的路径 * @param string_type newname */ function rename_file( $filename , $newname ) { if ( file_exists ( $filename )) { //判断文件是否存在 $result =rename( $filename , $newfilename ); if ( $result ==true) return true; else return false; } else die ( "文件不存在" ); } |
13、本方法在path目录下创建名为dirname的目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /** * 本方法在path目录下创建名为dirname的目录 * * @param string_type path * @param string_type dirname */ function create_dir( $path , $dirname ){ //创建目录 if ( file_exists ( $path )) { $result =@ mkdir ( $path . $dirname ); if ( $result ) return true; else return false; } else die ( "路径不存在,请重新输入" ); } |