文件的操作:创建文件,删除文件,重命名文件rename(),移动/复制文件,读取,大小(PHP都有内置的函数)

目录的操作:创建目录(有),删除目录,复制目录,统计目录大小,遍历(自己定义函数)

一.遍历目录
        opendir()
        readdir()
        closedir()
        rewinddir()

  1. <?php
  2. $dirname="phpMyAdmin";
  3. echo "文件总大小:".toSize(dirsize($dirname))."<br>";
  4. //opendir()打开一个目录句柄
  5. $dir=opendir($dirname);
  6. //readdir()从目录句柄中读取条目
  7. while($fileName=readdir($dir)){
  8. //要判断$dirname目录下的文件
  9. $file=$dirname."./".$fileName;
  10. //删除文件读取中的“.”和“..”
  11. if($fileName!='.'&&$fileName!=".."){
  12. //is_dir()判断的是当前目录下的文件
  13. if(is_dir($file)){
  14. //统计目录大小是没有内置的函数,所以我们要自己定义
  15. echo "<font color='red'>".$fileName."---".date('Y-m-d H-i-s',fileatime($file))."------".toSize(dirsize($file))."-------<br>";
  16. echo "</font><br>";
  17. }else{
  18. echo $fileName."-----".toSize(filesize($file))."------"."<br>";
  19. }
  20. }
  21. }
  22. //closedir()关闭目录句柄
  23. closedir($dir);
  24.  
  25. //文件大小单位转换函数
  26. function toSize($size){
  27. $dw="";
  28. if($size>pow(2,30)){
  29. $size=round($size/pow(2,30),2);
  30. $dw="GB";
  31. }else if($size>pow(2,20)){
  32. $size=round($size/pow(2,20),2);
  33. $dw="MB";
  34. }else if($size>pow(2,10)){
  35. $size=round($size/pow(2,10),2);
  36. $dw="KB";
  37. }else{
  38. $dw="BT";
  39. }
  40. return $size.$dw;
  41. }
  42.  
  43. //统计目录大小
  44. function dirsize($dirName){
  45. //文件大小的初始值
  46. $dirsize=0;
  47. $dir=opendir($dirName);
  48. while($fileName=readdir($dir)){
  49. $file=$dirName."./".$fileName;
  50. if($fileName!="." && $fileName!=".."){
  51. if(is_dir($file)){
  52. //递归实现
  53. $dirsize+=dirsize($file);
  54. }else{
  55. $dirsize+=filesize($file);
  56. }
  57. }
  58. }
  59. closedir($dir);
  60.  
  61. return $dirsize;
  62. }
  63. ?>

创建目录
            mkdir();新建一个空目录

   删除目录没有内置函数,要自定义
        删除目录

     rmdir();删除一个空目录

  1. <?php
  2. //创建一个空目录
  3. //mkdir("update",755);
  4.  
  5. //删除目录,只能删除空目录
  6. //rmdir("update");
  7.  
  8. $dirname="./mYphp";
  9.  
  10. deldir($dirname);
  11.  
  12. function deldir($dirName){
  13. if(file_exists($dirName)){
  14. $dir=opendir($dirName);
  15.  
  16. while($fileName=readdir($dir)){
  17. if($fileName!="." && $fileName!=".."){
  18. $file=$dirName."./".$fileName;
  19. if(is_dir($file)){
  20. echo "删除目录".$file."成功!<br>";
  21. deldir($file);
  22. }else{
  23. unlink($file);
  24. }
  25. }
  26. }
  27. closedir($dir);
  28. rmdir($dirName);
  29. }
  30. }
  31. ?>

文件、目录的重命名和移动
            rename();

  1. <?php
  2. $dirName="./phpMyAdmin";
  3. //文件改名
  4. rename("$dirName", "aaa");
  5.  
  6. $dirName="./aaa";
  7. //文件移动
  8. rename("$dirName","../aaa");
  9. ?>

复制目录
            要自定义

  1. <?php/*复制目录没有内置函数,所以我们要自己定义*/
  2.  
  3. $dirname="./phpMyAdmin";
  4.  
  5. copydir($dirname,"./aaa");
  6.  
  7. //目录的复制函数function copydir($dirsrc,$dirto){    //判断目标是否是目录    if(is_file($dirto)){        echo "目标不是目录";        return ;    }    //判断要复制到得目录是否存在    if(!file_exists($dirto)){        mkdir($dirto);    }    //打开目录    $dir=opendir($dirsrc);    while($fileName=readdir($dir)){        if($fileName!="." && $fileName!=".."){            $fileSrc=$dirsrc."./".$fileName;            $fileTo=$dirto."./".$fileName;
  8.  
  9.             if(is_dir($fileSrc)){                //递归                copydir($fileSrc,$fileTo);            }else{                //文件的复制函数                copy($fileSrc, $fileTo);            }        }    }    closedir($dir);}?>

PHP中目录的操作的更多相关文章

  1. Win32中目录的操作

    1 系统和当前目录 1.1 获取Windows目录 UINT GetWindowsDirectory( LPTSTR lpBuffer, //BUFF的地址  UINT uSize    //BUFF ...

  2. C语言中关于对目录的操作

    原文地址:C语言中关于对目录的操作 目录的操作不论是在嵌入式产品还是应用软件编程都是必不可少的,不同的开发语言可能略有不同,笔者主要是讨论在Linux平台下对目录的一系列操作: 1.获取当前目录操作: ...

  3. python中OS模块操作文件和目录

    在python中执行和操作目录和文件的操作是通过内置的python OS模块封装的函数实现的. 首先导入模块,并查看操作系统的类型: >>> import os os.name # ...

  4. Objective-C:Objective-C:文件中一些对目录进行操作的函数

    IO文件中,一些对目录进行操作的函数:获取.切分.组合 一些对目录进行操作的函数: 获取用户的姓名:(NSString*)NSUserName() ;    ———>NSString *Str ...

  5. 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】

    一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...

  6. git工作中的常用操作

    上班开始,打开电脑,git pull:拉取git上最新的代码: 编辑代码,准备提交时,git stash:将自己编辑的代码暂存起来,防止git pull时与库中的代码起冲突,否则自己的代码就白敲了: ...

  7. 我的Android六章:Android中SQLite数据库操作

    今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...

  8. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作

    http://www.cnblogs.com/wgp13x/p/4934521.html 内容一样,样式好的版本. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据 ...

  9. Delphi中文本文件的操作

    Delphi中文本文件的操作 相关知识内容: 在对文本文件进行任何处理之前,首先要打开此文本文件.声明变量:通过此变量可以来引用一个文本文件. 打开一个文件需要两步:首先是 AssignFile(), ...

随机推荐

  1. (18)odoo规范

    * 约定    # 命名会用  蛇形式或驼峰式        todo_task_stage 蛇形式        class TodoTask 驼峰式      变量名还是蛇形居多, 类名和方法名驼 ...

  2. hdu--(1247)Hat’s Words(trie树)

    Hat’s Words Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  3. 166. Fraction to Recurring Decimal -- 将除法的商表示成字符串(循环节用括号表示)

    Given two integers representing the numerator and denominator of a fraction, return the fraction in ...

  4. Testin

    http://www.testin.cn/ http://news.ccidnet.com/art/66/20150416/5815927_1.html 百度百科上面的   Testin是全球最大的移 ...

  5. 固定定位fixed(IE6)

     position: fixed;          left:200px;          top:100px;          _left:200px;          _top:100px ...

  6. Android TextView标签的显示

    在默认情况下,如果一个TextView中的文字太多,会跨行显示, 通过下面两个参数的设置,可以使TextView固定显示一行,未显示完成的后面用...... android:maxLines=&quo ...

  7. 关于PATH_INFO SCRIPT_NAME SCRIPT_FILENAME REDIRECT_URL 详解

    参考:http://www.nginx.cn/426.html  http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/09/13/217507 ...

  8. .NET 向SQL里写入非Text类型

    一般来说,在更新DataTable或是DataSet时,如果不采用SqlParameter,那么当输入的Sql语句出现歧义时,如字符串中含有单引号,程序就会发生错误,并且他人可以轻易地通过拼接Sql语 ...

  9. Oracle 中的 decode

    含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN R ...

  10. Hive的Transform功能

    Hive的TRANSFORM关键字提供了在SQL中调用自写脚本的功能,适合实现Hive中没有的功能又不想写UDF的情况.例如,按日期统计每天出现的uid数,通常用如下的SQL SELECT date, ...