PHP提供了一个用于ZIP文件操作的类。它还允许使用addEmptyDir()创建目录,并使用deleteName()删除条目。但是,删除不适用于目录(无论是否为空)。有没有办法删除ZIP文件中的空文件夹(最好使用内置的PHP功能)?
您需要在目录名称后面添加/。因此,以下内容可以正常工作:
<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->deleteName('testDir/');
$zip->close();
}
?>
所以,testDir/ 和 testDir 有什么区别呢?
关于目录概念的小笔记。实际上并不存在所谓的目录。例如:foo/a.txt 和 foo/b.txt 是两个条目,但是并没有 foo/ 目录。不过,可以创建一个名为 foo/ 的条目来“模拟”一个目录。
删除方法返回 true 而未删除任何内容看起来像是一个 bug,我已经要求 Philip 在 http://bugs.php.net 上开一个新的 bug,以便我能尽快修复它。
谢谢!