1、删除目录下所有的文件和文件夹,采用了递归的方式循环去删除
/** * 删除目录下所有的文件和文件夹 * $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、计算文件的大小
/** * 计算文件的大小, * @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、先删除目录下所有的文件,这个不删除文件夹
/** *先删除目录下所有的文件 * 返回的是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、计算目录的大小或者文件夹的大小
/** * 返回目录的大小,及文件夹的大小 * $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、获取文件夹下的文件和文件夹列表(列出所有的文件)
/** * 获取文件夹下的列表 * $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、 获取文件夹下的所有的文件
/** * 获取文件夹下的列表 * $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、创建一个文件的方法
/** * 创建一个文件的方法 * $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、删除某个目录下的某个文件名
/** * 本方法删除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
/** * 本方法用来复制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路径
/** * 本方法把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文件
/** 本方法把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的目录
/** * 本方法在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("路径不存在,请重新输入"); }