问题标签 [rubyzip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
7565 浏览

ruby - 如何使用 ruby​​zip 解压缩压缩文件夹

我知道如何使用 ruby​​zip 检索普通 zip 文件的内容。但是我在解压缩压缩文件夹的内容时遇到了麻烦,我希望你们中的任何一个都可以帮助我。

这是我用来解压缩的代码:

entry.name 为我提供了 zip 文件中文件的名称。这与普通的 zipfile 完美配合。但是当从文件夹创建 zipfile 时,条目的名称类似于:test-folder/test.pdf。然后当我尝试创建文件时,它告诉我找不到该文件。这可能是因为它位于 zip 内的“测试”文件夹内。

如果我将条目检查为文件夹,则找不到文件夹。所以我认为解决方案是将条目作为流读取,然后将其保存为文件。获取入口流很容易,但是如何将其保存为文件?这是我到目前为止得到的。

基本上我的问题是:如何从流中创建文件?或者有比我更简单的方法吗?

===编辑=== 我使用回形针来存储文件。

0 投票
1 回答
2150 浏览

ruby - 由 ruby​​zip 压缩的 xlsx 无法被 Excel 读取

我正在编写可以读/写 Excel xlsx 文件的代码。xlsx 文件只是几个 xml 文件的 zip 存档,所以为了测试我是否可以编写文件,我使用名为的 gemrubyzip解压缩 xlsx 文件,然后立即将其压缩回新存档,而不修改数据. 但是,当我这样做时,我无法打开新的 excel 文件,据说它已损坏。

或者,如果我使用 Mac OS X 的存档实用程序(处理 zip 文件的本机应用程序),并且我解压缩并重新压缩一个 excel 文件,则数据不会损坏,我可以在 Excel 中打开生成的文件。

我发现rubyzip“破坏”数据的不是“解压缩”功能,而是压缩过程。(事实上​​,当我对rubyzip创建的新 zip 文件使用存档实用程序时,Excel 再次可以读取该文件)。

我想知道为什么会发生这种情况,以及有什么解决方案可以以 Excel 可读的方式以编程方式压缩内容。

我的压缩代码:

0 投票
1 回答
552 浏览

ruby - rubyzip 文件顺序

我正在为一个目录创建一个存档,其中每个文件都有一个从 001 到 049 的 3 位数字的名称。我的代码如下:

添加文件时,我验证了puts它们是按数字升序添加的。但是当我尝试用 解压它们时zip,我发现它们是按随机顺序解压的(例如 045、002、...)。

如何确保它们按数字顺序解压?

编辑:使用十六进制编辑器查看生成的 zip 文件显示图像以不合理的顺序添加,但它们是unzip按照它们在中央目录中出现的顺序提取的(在 zip 文件末尾的块)。

0 投票
1 回答
132 浏览

ruby - RubyZip:归档过程指示

我正在将大量文件添加到我的存档中,它看起来像这样:

将所有文件添加到我的存档后,它开始将它们全部压缩(大约 10-15 分钟)。

我怎样才能表明实际发生了什么rubyzip gem(实际上我想显示百分比current_file_number/total_files_count)。

0 投票
6 回答
6477 浏览

ruby-on-rails - zipruby 还是 ruby​​zip?

我在这里有一个 ruby​​ on rails 站点(rails 2.0.2,ruby 1.8.6),同时安装了 ruby​​zip 和 zipruby,但它们在 File.exists 上存在冲突?方法所以我想删除一个。关于未来最好的 zipping api 的普遍共识是什么?

一个比另一个有显着优势吗?

0 投票
1 回答
1248 浏览

ruby - 无法在带有 RVM 的 OS X Lion 上安装 RubyZip gem

TL;博士


现在详细说明。我不确定哪些信息是相关的,所以我只想说出来。

  1. 我最近从 OS X Snow Leopard 升级到了 Lion(也将 Xcode 升级到了 4.2)
  2. 一切工作正常了一段时间
  3. 今天我决定安装一些 gem(RSpec、Cucumber),每当我对 RubyGems 进行任何操作时,我都会收到日期格式警告
  4. 我决定将 RubyGems 从 1.3.6(我不确定)更新到当前的 1.8.11
  5. 警告不断弹出,因此我尝试使用 删除 gemset,但由于某些权限被拒绝错误,该 gemsetrvm gemset empty失败了(是的,愚蠢的我没有写下来)
  6. 结果,我通过and重新安装了 Ruby(在那之后我没有忘记。rvm remove 1.9.2rvm install 1.9.2rvm use 1.9.2 --default
  7. 我安装了 bundler gem install bundle,然后尝试bundle install在我的 Rails 3.1.1 项目中安装,但它以错误结束

    /li>
  8. gem install rubyzip -v '0.9.4'给出上述错误

  9. README 文件说要通过 下载源代码并从那里安装ruby install.rb,这也以错误结尾

    /li>
  10. 即使从 ruby​​zip 执行测试也会导致一堆错误

    /li>
  11. 我没有想法,我该怎么办?

0 投票
2 回答
1566 浏览

ruby-on-rails - Ruby 使用 RubyZip 在 Zip 中存储远程文件

我有一个名为 Image 的模型。图像具有使用 Dragonfly 附加的文件,这些文件存储在 S3 中。

我有一个要求,我需要压缩所有图像。

我在用着:

我遇到的问题是,如果image_path是本地的,这可以工作。当您需要为文件调用 S3 时,image_path是远程路径,例如http://example.s3.amazonaws.com/foo/image.jpg,我认为没有 RubyZip 方法可以处理那。

我正在讨论编写从远程路径创建临时文件的东西,将该临时文件添加到 zip,然后删除临时文件。

但在我这样做之前,有没有人知道 RubyZip 或其他一些 zip 库是否处理压缩远程文件?还是有更好/更简单的方法?

谢谢!

0 投票
1 回答
1796 浏览

ruby - 使用 ZipOutputStream 的 Zip 文件中的子目录

我正在使用此处描述的技术创建一个 zip 文件:

http://info.michael-simons.eu/2008/01/21/using-rubyzip-to-create-zip-files-on-the-fly/

客户要求我在这个 zip 文件中包含子目录。我已经搜索了 ZipOutputStream 文档,但我看不到包含目录的方法。有没有办法用 ZipOutputStream 做到这一点?我应该使用与 ZipOutputStream 不同的类吗?

此外,我压缩的文件不在本地文件系统上,而是存储在云服务中。

0 投票
2 回答
1807 浏览

ruby-on-rails-3.1 - 如何使用 ruby​​zip 重命名 zip 文件中的文件和目录

我正在尝试重命名 zip 中的文件和目录。我试过三种不同的,都不起作用。什么是正确的命令?

以下是我的代码的摘录:

如果我在没有任何重命名试用命令的情况下执行,我会得到此输出,因此您可以看到该文件存在于 zip 中。它不是 File 类,而是 Zip::ZipEntry 类,我能够解析新名称。

第一次尝试(未注释),我收到此错误:

第二次尝试(未注释),我收到此错误:

第三次尝试(未注释),我收到此错误:

0 投票
3 回答
906 浏览

ruby - 文件名中的 ruby​​zip 和 unicode 字符

我正在使用rubyzipgem 和Zip::ZipOutputStreamclass 创建 zip 存档,并且遇到了 unicode 字母(西里尔文)的问题 - 在存档中它们显示为问号,例如????? ???? ??.doc. rubyzip 支持 unicode 吗?