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

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

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

<?php
$dirname="phpMyAdmin";
echo "文件总大小:".toSize(dirsize($dirname))."<br>";
    //opendir()打开一个目录句柄
    $dir=opendir($dirname);
    //readdir()从目录句柄中读取条目
    while($fileName=readdir($dir)){
        //要判断$dirname目录下的文件
        $file=$dirname."./".$fileName;
        //删除文件读取中的“.”和“..”
        if($fileName!='.'&&$fileName!=".."){
            //is_dir()判断的是当前目录下的文件
            if(is_dir($file)){
                //统计目录大小是没有内置的函数,所以我们要自己定义
                echo "<font color='red'>".$fileName."---".date('Y-m-d H-i-s',fileatime($file))."------".toSize(dirsize($file))."-------<br>";
                echo "</font><br>";
            }else{
                echo $fileName."-----".toSize(filesize($file))."------"."<br>";
            }
        }
    }
    //closedir()关闭目录句柄
    closedir($dir);

    //文件大小单位转换函数
    function toSize($size){
        $dw="";
        if($size>pow(2,30)){
            $size=round($size/pow(2,30),2);
            $dw="GB";
        }else if($size>pow(2,20)){
            $size=round($size/pow(2,20),2);
            $dw="MB";
        }else if($size>pow(2,10)){
            $size=round($size/pow(2,10),2);
            $dw="KB";
        }else{
            $dw="BT";
        }
        return $size.$dw;
    }

    //统计目录大小
    function dirsize($dirName){
        //文件大小的初始值
        $dirsize=0;
        $dir=opendir($dirName);
        while($fileName=readdir($dir)){
            $file=$dirName."./".$fileName;
            if($fileName!="." && $fileName!=".."){
                if(is_dir($file)){
                    //递归实现
                    $dirsize+=dirsize($file);
                }else{
                    $dirsize+=filesize($file);
                }
            }
        }
        closedir($dir);

        return $dirsize;
    }
?>

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

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

     rmdir();删除一个空目录

<?php
//创建一个空目录
//mkdir("update",755);

//删除目录,只能删除空目录
//rmdir("update");

$dirname="./mYphp";

deldir($dirname);

function deldir($dirName){
    if(file_exists($dirName)){
        $dir=opendir($dirName);

        while($fileName=readdir($dir)){
            if($fileName!="." && $fileName!=".."){
                $file=$dirName."./".$fileName;
                if(is_dir($file)){
                    echo "删除目录".$file."成功!<br>";
                    deldir($file);
                }else{
                    unlink($file);
                }
            }
        }
        closedir($dir);
        rmdir($dirName);
    }
}
?>

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

<?php
$dirName="./phpMyAdmin";
//文件改名
rename("$dirName", "aaa");

$dirName="./aaa";
//文件移动
rename("$dirName","../aaa");
?>

复制目录
            要自定义

<?php/*复制目录没有内置函数,所以我们要自己定义*/

$dirname="./phpMyAdmin";

copydir($dirname,"./aaa");

//目录的复制函数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;

            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. (08)odoo继承机制

    * 全局的引用    所有的的模型定义外,都在注册中心注册了,我们可以用全局变量来引用这些模型    self.env[mode name] 比如得到合作伙伴这个模型 self.evn['res.pa ...

  2. UserAgent:通过浏览器获取用户浏览器等信息

    User Agent的含义      User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本.CPU 类型.浏览器及版本.浏览器渲染引擎.浏 ...

  3. SAP连接HANA数据库

    既然都用HANA了,为什么还要在SAP端,连接HANA数据库,做数据库处理..... 因为HANA数据库,没个用户在STADIO上建的数据库表...只能这个用户使用,而做Universe 设计的时候, ...

  4. 【转载】SAP的标准对话框函数

    http://blog.sina.com.cn/s/blog_721b218c01012j0y.html 在用户设计sap的程序时,经常需要一些对话框,用户可以自己编写,但使用SAP系统中提供了的对话 ...

  5. eclipse 中提示tomcat 的端口被占用了 后的最快捷解决方法

    很多时候运行tomcat 的时候总是会提示tomcat 的端口被占用 但是任务管理器里面还找不到是哪个端口被占用了 因此很多人就重新配置tomcat  或者去修改tomcat的端口号 ,其实这么做太麻 ...

  6. 登陆验证前对用户名和密码加密之后传输数据---base64加密

    以下这种方法是加密传输的简单实现 1,base64.js /** * * Base64 encode / decode * * */ function Base64() { // private pr ...

  7. Javascript 中的false、0、null、undefined和空字符串对象

    在Javascript中,我们经常会接触到题目中提到的这5个比较特别的对象——false.0.空字符串.null和undefined.这几个对象很容易用错,因此在使用时必须得小心. 类型检测 我们下来 ...

  8. c#中的反射

    System.Reflection.AssemblySystem.Activator Assembly assembly = Assembly.load("namespace名") ...

  9. redhat enterprixe 5.0 web 服务配置与管理

    一.Web服务及工作原理 Web服务的实现采用客户/服务器模型.客户机运行Web客户程序(浏览器),作用是解释和显示Web页面,相应用户的输入请求,并且通过http协议将用户请求传递给Web服务器.W ...

  10. eclipse常用10个快捷键[转载]

    转载自:http://www.jb51.net/softjc/139467.html