php常用的文件操作函数

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($diras $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($pathas $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("路径不存在,请重新输入"); 
  }

本文永久地址:http://www.huanghaiping.com/article/12.html
本文出自 黄海平博客 ,转载时请注明出处及相应链接。

发表我的评论
  

网友最新评论 (0)

暂无评论