美文网首页
php文件夹的操作

php文件夹的操作

作者: 西湖凉咖啡 | 来源:发表于2017-10-03 09:31 被阅读93次

    一、删除目录及目录下的所有文件

    function delDirAndFile( $dirName )

    {

    if ( $handle = opendir( "$dirName" ) ) {

    while ( false !== ( $item = readdir( $handle ) ) ) {

    if ( $item != "." && $item != ".." ) {

    if ( is_dir( "$dirName/$item" ) ) {

    delDirAndFile( "$dirName/$item" );

    } else {

    if( unlink( "$dirName/$item" ) )echo "成功删除文件: $dirName/$item

    \n”;

    }

    }

    }

    closedir( $handle );

    if( rmdir( $dirName ) )echo “成功删除目录: $dirName

    \n”;

    }

    }

    二、仅删除目录下的文件,不删除目录

    function delFile($dirName){

    if(file_exists($dirName) && $handle=opendir($dirName)){

    while(false!==($item = readdir($handle))){

    if($item!= "." && $item != ".."){

    if(file_exists($dirName.'/'.$item) && is_dir($dirName.'/'.$item)){

    delFile($dirName.'/'.$item);

    }else{

    if(unlink($dirName.'/'.$item)){

    return true;

    }

    }

    }

    }

    closedir( $handle);

    }

    }

    三、定时删除

    <?php

    $flag = 1; //将执行标志设置为1,默认为执行

    ignore_user_abort(); //客户端断开时,可以让脚本继续在后台执行

    set_time_limit(0); //忽略php.ini设置的脚本运行时间限制

    $interval = 5*60; //设置执行周期,单位为秒,5分钟为 5*60=300

    do{

    $flagfile = "flag.txt"; //标志放置在文件“flag.txt”中。“0”表示停止执行,“1”表示继续执行

    if(file_exists($flagfile) && is_readable($flagfile)) { //读取文件内容

    $fh = fopen($flagfile,"r");

    while (!feof($fh)) {

    $flag = fgets($fh); //存储标志

    }

    fclose($fh);

    }

    $dir = "temp/"; //你的临时目录位置

    $handle=opendir("{$dir}/");

    while (false !== ($file=readdir($handle))) {

    if ($file!="." && $file!=".." && !is_dir("{$dir}/{$file}")) {

    @unlink ("{$dir}/{$file}");

    }

    }

    closedir($handle); //关闭由 opendir() 函数打开的目录

    sleep($interval); //执行一个周期后,休眠$interval时间,休眠结束后脚本继续执行

    }while($flag);

    友情提示:请在本地环境测试!

    四、创建文件夹

    mkdir("文件夹路径",0700);

    五、列出目录和文件

    if ($handle = opendir('./')) {//指定当前目录

      while (false !== ($file = readdir($handle))) {//循环读取目录下的文件

          echo "$file<br />";

      }

      closedir($handle);//关闭目录流

    }

    六、磁盘空间

    function dir_size($dir) {

    @$dh = opendir($dir);//打开目录,返回一个目录流

    $size = 0;//初始大小为0

    while ($file = @readdir($dh)) {//循环读取目录下的文件

    if ($file != "." and $file != "..") {//如果返回的不是本目录(.)或者上级目录(..)

    $path = $dir."/".$file;//设置目录,用于含有子目录的情况

    if (is_dir($path)) {//如果是目录文件

    echo "$path<br />";

    $size += dir_size($path);//递归调用,计算目录大小

    } elseif (is_file($path)) {//如果是文件

    echo "$path ". filesize($path) ." BYTE<br />";

    $size += filesize($path);//计算文件大小

    }

    }

    }

    @closedir($dh);//关闭目录流

    return $size;//返回大小

    }

    $dir = ".";//指定文件所在的目录

    $dir_size = dir_size("$dir");//计算目录大小

    echo "总大小:". $dir_size ." BYTE";

    七、改变目录和文件的属性

    chmod("test.txt",0755);

    相关文章

      网友评论

          本文标题:php文件夹的操作

          本文链接:https://www.haomeiwen.com/subject/ekvxyxtx.html