CI框架目录结构: 
  
|-application  (应用目录)
|-system  (核心目录)
|-downexcel  (文件存在目录)
|-ZipBackDir (备份目录)
|-index.php (入口文件)
 
 
  $zip=new ZipArchive();
        //生成压缩后文件名      
        $ZipBackDir = "ZipBackDir/1.zip";
        if($zip->open($ZipBackDir, ZipArchive::CREATE)=== TRUE){
             $this->addFileToZip("downexcel/".time(), $zip);
             $zip->close();
        }else{
            echo "读取失败~";
        }
        /*header ( "Cache-Control: max-age=0" );
        header ( "Content-Description: File Transfer" );
        header ( 'Content-disposition: attachment; filename=' . basename ($ZipBackDir ) ); // 文件名
        header ( "Content-Type: application/zip" ); // zip格式的
        header ( "Content-Transfer-Encoding: binary" ); // 告诉浏览器,这是二进制文件
        header ( 'Content-Length: ' . filesize ( $ZipBackDir ) ); // 告诉浏览器,文件大小
        @readfile ( $ZipBackDir );//输出文件;*/
    }
    
    function addFileToZip($path,$zip){
        $handler=opendir($path); //打开当前文件夹由$path指定。
        while(($filename=readdir($handler))!==false){
            if($filename != "." && $filename != ".."){//文件夹文件名字为'.'和‘..’,不要对他们进行操作
                if(is_dir($path."/".$filename)){// 如果读取的某个对象是文件夹,则递归
                    $this->addFileToZip($path."/".$filename, $zip);
                }else{ //将文件加入zip对象
                    $zip->addFile($path."/".$filename);
                }
            }
        }
        @closedir($path);
    }