您的位置:澳门新葡8455最新网站 > 编程教学 > php文件夹的操作

php文件夹的操作

发布时间:2019-11-24 17:14编辑:编程教学浏览(173)

    一、基本文件的操作

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

    文件的基本操作有:文件判断、目录判断、文件大小、读写性判断、存在性判断及文件时间等

    function delDirAndFile( $dirName )

    '; return; } /*是否是普通文件*/ if { echo $fileName.'是一个文件
    '; } /*是否是目录*/ if { echo $fileName.'是一个目录'; } /*输出文件的型态*/ echo '文件型态是:'.getFileType.'
    '; /*文件大小,转换单位*/ echo '文件大小是:'.getFileSize.'
    '; /*文件是否可读*/ if(is_readable { echo '文件可读
    '; } /*文件是否可写*/ if(is_writable { echo '文件可写
    '; } /*文件是否可执行*/ if(is_executable { echo '文件可执行
    '; } echo '文件创立时间:'.date('Y年m月j日',filectime.'
    '; echo '文件最后修改时间:'.date('Y年m月j日',filemtime.'
    '; echo '文件最后打开时间:'.date('Y年m月j日',fileatime.'
    '; } /* *声明一个函数,返回文件类型 *@param string $fileName 文件名称 */ function getFileType { $type = ''; switch { case 'file':$type .= '普通文件';break; case 'dir':$type .= '目录文件';break; case 'block':$type .= '块设备文件';break; case 'char':$type .= '字符设备文件';break; case 'filo':$type .= '管道文件';break; case 'link':$type .= '符号链接';break; case 'unknown':$type .= '未知文件';break; default: } return $type; } /* *声明一个函数,返回文件大小 *@param int $bytes 文件字节数 */ function getFileSize { if { $return = round,2); $suffix = 'TB'; } else if { $return = round,2); $suffix = 'GB'; } else if { $return = round,2); $suffix = 'MB'; } else if { $return = round,2); $suffix = 'KB'; } else { $return = $bytes; $suffix = 'B'; } return $return." ".$suffix;} /*调用函数,传入test目录下的test.txt文件*/ getFilePro;?>
    

    {

    二、目录的操作

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

    目录的操作有:遍历目录、删除、复制、大小统计等

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

     /* *遍历目录 *@param string $dirName 目录名 */ function findDir { $num = 0; /*统计子文件个数*/ $dir_handle = opendir; /*打开目录*/ /*输出目录文件*/ echo '
    

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

    '; echo '

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

    目录'.$dirName.'下的文件

    '; echo '

    文件名

    文件大小

    文件类型

    修改时间

    '; while($file = readdir { $dirFile = $dirName.'/'.$file; $bgcolor = $num++%2==0?'#ffffff':'#澳门新葡萄京娱乐场,cccccc'; echo '

    '; echo '

    '.$file.'

    '; echo '

    '.filesize.'

    '; echo '

    '.filetype.'

    '; echo '

    '.date('Y/n/t',filemtime.'

    '; echo '

    '; } echo "

    "; closedir; /*关闭目录*/ echo "在".$dirName."目录下共有".$num.'个子文件'; } /*传递当前目录下的test目录*/ findDir;

     /* *统计目录大小 *@param string $dirName 目录名 *@return double */function dirSize{ $dir_size = 0; if($dir_handle = @opendir { while ($fileName = readdir { /*排除两个特殊目录*/ if($fileName != '.' && $fileName != '..') { $subFile = $dirName.'/'.$fileName; if { $dir_size += filesize; } if { $dir_size += dirSize; } } } closedir; return $dir_size; } } /*传递当前目录下的test目录*/ $dir_size = dirSize; echo './test目录文件大小是:'.round($dir_size / pow.'KB';
    
    /**删除目录*@param string $dirName 目录名 */ function delDir { /*php中的mkdir函数就可以创建目录*/ if) { if($dir_handle = @opendir { while ($fileName = readdir { /*排除两个特殊目录*/ if($fileName != '.' && $fileName != '..') { $subFile = $dirName.'/'.$fileName; if { unlink; } if { delDir; } } } closedir; rmdir; return $dirName.'目录已经删除'; } } } /*传递test目录的副本test1*/ echo delDir; 
    
     /* *复制目录 *@param string $dirSrc 原目录名 *@param string $dirTo 目标目录名 */ function copyDir { if { echo '目标目录不能创建';/*目标不是一个*/ return; } if { /*目录不存在则创建*/ mkdir; } if($dir_handle = @opendir { while ($fileName = readdir { /*排除两个特殊目录*/ if($fileName != '.' && $fileName != '..') { $subSrcFile = $dirSrc.'/'.$fileName; $subToFile = $dirTo.'/'.$fileName; if { copy($subSrcFile,$subToFile); } if { copyDir($subSrcFile,$subToFile); } } } closedir; return $dirSrc.'目录已经复制到'.$dirTo.'目录'; } } echo copyDir('./test','../testcopy');
    

    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);

    本文由澳门新葡8455最新网站发布于编程教学,转载请注明出处:php文件夹的操作

    关键词: