VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • php 文件目录操作函数

在php中我们有大量的可对文件与目录操作的函数,下面我来总结一下这些函数的用法.

mkdir();函数:php创建文件夹和文件

  1. ///创建文件夹 
  2.  代码如下 复制代码 
  3. function createdir($dir
  4. if(file_exists($dir) && is_dir($dir)){//如果存在这个文件并且这个文件是个目录就不动作 
  5. else
  6.    mkdir($dir,0777);//否则就创造这个目录 

file_exists();函数,file_exists -- 检查文件或目录是否存在,代码如下:

  1. <?php 
  2. $filename = '/path/to/foo.txt'
  3. if (file_exists($filename)) { 
  4.     print "The file $filename exists"
  5. else { 
  6.     print "The file $filename does not exist"
  7. ?> 

is_dir();函数,is_dir();测试文件是否为目录,为目录就返回true,不就返回false.

is_file();Is_File('目标文件路径和文件名'),为文件返回"True",不为文件返回"False"。

is_link();文件系统函数库

is_link();测试文件是否为链接文件。

true 值则表示指定的 filename 存在并为符号链接文件.

rmdir 命令

功能:删除空目录

rmdir [选项] dirname 

- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除,如果整个路径被删除或者由于某种原因.保留部分路径,则系统在标准输出上显示相应的信息。

要清空并除去目录,请输入:

rm mydir/* mydir/.*

rmdir mydir

该命令除去 mydir 文件中的内容接着除去空目录,rm 命令显示一条关于尝试除去目录 .(点)和.. (点,点)的错误消息,然后 rmdir 命令除去它们。

建立一个文件名字为aa.txt,代码如下:

  1. $fp=fopen('aa.txt',   'w+');   //建立一新文件    
  2. chmod('aa.txt',   0777);   //设定权限,不然的话建立后无法修改,删除   //好象这行不用也可以  
  3. fwrite($fp,   '要写入的内容');   //写内容    
  4. fclose($fp);   //关闭文件 

unlink()函数

功能:删除文件,unlink($filename),删除文件名为$filename的文件,删除指定目录下的所有文件,代码如下:

  1. function dir_clear($dir) {  
  2.     $directory = dir($dir);         //创建一个dir类(Php手册上这么说的),用来读取目录中的每一个文 
  3. 件  
  4.     while($entry = $directory->read()) {   //循环每一个文件,并取得文件名$entry  
  5.         $filename = $dir.'/'.$entry;       //取得完整的文件名,带路径的  
  6.         if(is_file($filename)) {           //如果是文件,则执行删除操作  
  7.             @unlink($filename);  
  8.         }  
  9.     }  
  10.     $directory->close();            //关闭读取目录文件的类  
  11.     result();  

列出目录中包括子目录的所有文件程序,代码如下:

  1. <?php 
  2. /* 
  3.  * PHP 读取目录下及其子目下的文件函数 
  4.  * */ 
  5. $files=getFile("images");//调用函数 
  6. foreach ($files as $name){ 
  7.  echo "$name"."<br>"
  8.  
  9. function getFile($dir){ 
  10.  $files=array(); 
  11.  if (is_file($dir)){//如果指定路径为文件直接返回 
  12.   return $dir
  13.  } 
  14.  
  15.  $hande=opendir($dir); 
  16.  
  17.  if ($hande){ 
  18.   while (false!==($ufile=readdir($hande))){//如果读取目录成功 
  19.    if ($ufile!="." && $ufile!=".."){ 
  20.     $filename=$dir."/".$ufile
  21.     if (is_file($filename)){ 
  22.      $files[]=$filename
  23.     }else
  24.      $files=array_merge($files,getFile($filename)); 
  25.     } 
  26.    } 
  27.   }//end While 
  28.   closedir($hande); 
  29.  }//end if 
  30.  
  31.  return $files
  32. ?> 

删除指定目录下的所有文件以及所有文件夹强烈推荐这种方法,代码如下:

  1. function rmdir_tree($dirname)//定义一个函数rmdir_tree,要删除的文件名为$dirname 
  2. $handle=opendir($dirname);//打开名为$dirname的文件夹 
  3. while ($file=readdir($handle)) //跑回圈读取打开的文件夹 
  4.     if (($file==".") || ($file=="..")) continue;//继续跑的条件,如果不满足就不跑了 
  5.     $fullname=$dirname."/".$file;//完整的文件名(包括路径) 
  6.     if (filetype($fullname)=="dir"
  7.       rmdir_tree($fullname);//调用刚刚定义的函数,实现递归 
  8.     else 
  9.       unlink($fullname);//删除文件 
  10. closedir($handle);//关闭打开了的文件夹 
  11. rmdir($dirname);//删除自身(文件夹) 
  12. }
  13.  

出处:http://www.phpfensi.com/php/20140106/1078.html


相关教程