php - 为什么 PHP 不创建这个 zip 文件(权限问题)

标签 php file-permissions phing ziparchive

  • 我在 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/

相关文章:

php - 如何生成 OAuth 签名

java - 无法通过java代码更改文件夹的权限

windows - 特定应用程序的文件权限

php - 从项目目录加载自定义 Phing 任务

php - Symfony 2.1 上的 PropelBundle 安装

php - 更改行值 onclick html 表,如 phpMyAdmin

php - 制作 PHP CSS 和 HTML 进度条

C程序: Why does remove() delete a file with no write permissions

php - 为什么会有 "build/"文件夹,里面有 PHP 项目和 phing

php - 已安装 phing 但 "not found"且不在 pear 列表中