• 技术文章 >后端开发 >php教程

    这个程序为何不能遍历文件夹下的所有文件和文件夹

    2016-06-13 11:18:38原创260
    这个程序为什么不能遍历文件夹下的所有文件和文件夹?
    下面是一个计算文件夹下面所有文件及文件夹大小的程序,我让它计算文件夹‘znb1’的大小,此文件夹下面
    的结构为
    znb1/.buildpath,
    znb1/.project,
    znb1/223/s.php,
    znb1/settings/newfile.php,
    znb1/settings/org.eclipse.php.core.prefs
    程序运行后只计算出znb1/.buildpath和znb1/.project两个文件的大小
    这是为什么?我用的软件为wampserver和editplus程序如下:


    function dirsize($dirname) {
    $dir = opendir ( $dirname );
    while ( ($file = readdir ( $dir )) !== FALSE ) {
    $filename=$dirname.'\\'.$file;
    if ($file != '.' && $file != '..') {

    if (is_dir ( $file )) {

    $count += dirsize ( $file );
    } else {
    $count += filesize($filename);
    }
    }
    }
    return $count;
    }
    echo dirsize ( 'znb1' );

    ?>


    ------解决方案--------------------
    if (is_dir ( $filename )) {
    如果是$file,那么对于这个相对路径,将在当前目录下寻找。未找到自然报false
    ------解决方案--------------------
    set_time_limit(0);
    function dirsize($dirname) {
    if (is_dir($dirname)) {
    $dir = opendir ($dirname);
    if ($dir != false) {
    while ( ($file = readdir ($dir)) !== FALSE ) {
    $filename = $dirname.'\\'.$file;
    if (is_file($filename)){
    $count[] = filesize($filename)."@".$filename;
    } else if (is_dir($filename)){
    if ($file != "." && $file != "..") {
    dirsize($filename);
    }
    }
    }
    }

    return $count;
    } else {
    return false;
    }
    }
    $path = "D:\APMServ5.2.6\www\htdocs\localhost";
    $c = dirsize($path);
    var_dump($c);
    +-----------------------------+
    修改了一下,可以计算了,相对路劲没测试过!参考下吧!
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:关于权限,仅自己可见的有关问题 下一篇:调用使用链接服务器的mssql存储过程遇到的有关问题
    PHP编程就业班

    相关文章推荐

    • 或者用到的php代码 • 求指导学习php思路,该怎么解决 • dede首页生成有关问题,附带一个特效有关问题 • CodeIgniter(CI 3.0)分页类实践记录• 求共享dedecms二次开发视频

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网