ZipArchive::addFile()只能将文件压进压缩包,如果将一个目录的路径作为第一个参数传递给了ZipArchive的addFile()方法,不会报任何错误,而且返回值也是true,但是所有当前ZipArchive做的操作全部会失效。即:如果指定的压缩文件原本不存在,即使之前的代码成功将文件压进了压缩文件,最终这个压缩文件并不会保存在硬盘上, 如果指定的压缩文件原本就存在,ZipArchive不会对文件作出任何改变。所以,在调用ZipArchive::addFile()之前,一定要判断给定的参数是文件路径还是文件夹路径。
- <?php
- $z = new ZipArchive;
- if(true === ($z->open('./foo.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE))){
- $z->setArchiveComment('Interesting!');
- $z->addFromString('domain.txt', 'wuxiancheng.cn');
- $folder = './test';
- !is_dir($folder) && mkdir($folder);
- if(true === $z->addFile($folder)){
- echo 'success'; // !!!
- }
- rmdir($folder);
- $z->close();
- }
- ?>
复制代码 |
|