该方法可以指定是否删除当前目录,比较灵活
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | /** * 删除目录及目录下所有文件或删除指定文件 * @param str $path 待删除目录路径 * @param int $delDir 是否删除目录,1或true删除目录,0或false则只删除文件保留目录(包含子目录) * @return bool 返回删除状态 */ function delDirAndFile( $path , $delDir = FALSE) { $handle = opendir( $path ); if ( $handle ) { while (false !== ( $item = readdir( $handle ) )) { if ( $item != "." && $item != ".." ) is_dir ( "$path/$item" ) ? $this -> delDirAndFile( "$path/$item" , $delDir ) : unlink( "$path/$item" ); } closedir ( $handle ); if ( $delDir ) return rmdir ( $path ); } else { if ( file_exists ( $path )) { return unlink( $path ); } else { return FALSE; } } } |
此方法是在类中使用的,如果直接当函数使用,需要把里面的
1 | is_dir ( "$path/$item" ) ? $this -> delDirAndFile( "$path/$item" , $delDir ) : unlink( "$path/$item" ); |
改为
1 | is_dir ( "$path/$item" ) ? delDirAndFile( "$path/$item" , $delDir ) : unlink( "$path/$item" ); |
转载请注明:七彩悠悠博客 | 心悠悠 情悠悠 » php递归删除指定目录下所有文件