我在 windows 上
我正在使用 PHING 压缩一些文件
我有很多东西正在压缩
压缩有效,但压缩文件中包含特定 phing 文件集的除外
调试时,我可以在 phing 的 ZIP 任务中看到 ZipArchive::close 返回 false。错误字符串显示为“权限被拒绝”。在手册中,它指出 close() 是实际写入文件的内容。
这不是时间耦合,换句话说,无论这是第一个、最后一个还是其他任何东西,它都会发生。所有其他的都有效。这个似乎没有什么不同。
这是我的构建文件:http://pastebin.org/84786 (有效期为一个月)
问题出在第 251 行。它之前和之后的 zip 任务都工作正常。在调试器中,我可以看到大约 150 个文件被添加到 zip。我已经在调试器中验证了所有路径都是正确的。
构建似乎在 linux 上运行良好。
当我右键单击 zip 文件所在的文件夹时,只读复选框“变蓝”,未选中或未选中。无论我是选中还是取消选中它,然后按确定并返回文件夹的属性,该复选框再次变为“蓝色”。显然这是设计使然 (http://support.microsoft.com/kb/326549),这似乎不是问题,因为它只发生在那个文件上。
另一件奇怪的事情是,如果我转到第 252 行并将文件集更改为指向,例如,来自它正上方的“importer”模块的文件,它会创建 zip。然而,第 236 行的 .tar.gz 证明每次都可以正常工作。所以它只发生在 zip 任务的特定文件集上。该文件集可以很好地处理 tar 任务。事实上,它下面的“包”注释下的所有任务也引用了这些文件,但 tar.gz 文件会创建。
什么给了?
另外:新的观察...如果我足够快地刷新文件 View ,那么在两台 Windows 机器上看起来都一样,我可以看到 myzipfile.zip.tmp 正在构建,但 myzipfile.zip 永远不会被创建。
在 Linux 上,我仔细检查了一切是否正常运行。去图吧。
最佳答案
根据您的新观察,听起来问题与将 TMP 文件重命名为真正的 ZIP 文件有关。要么存在文件名问题,要么存在某种延迟写入问题,即重命名时文件尚未完全完成。
关于php - 为什么 PHP 不创建这个 zip 文件(权限问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2174978/