问题标签 [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.
ruby - 如何使用 rubyzip 解压缩压缩文件夹
我知道如何使用 rubyzip 检索普通 zip 文件的内容。但是我在解压缩压缩文件夹的内容时遇到了麻烦,我希望你们中的任何一个都可以帮助我。
这是我用来解压缩的代码:
entry.name 为我提供了 zip 文件中文件的名称。这与普通的 zipfile 完美配合。但是当从文件夹创建 zipfile 时,条目的名称类似于:test-folder/test.pdf。然后当我尝试创建文件时,它告诉我找不到该文件。这可能是因为它位于 zip 内的“测试”文件夹内。
如果我将条目检查为文件夹,则找不到文件夹。所以我认为解决方案是将条目作为流读取,然后将其保存为文件。获取入口流很容易,但是如何将其保存为文件?这是我到目前为止得到的。
基本上我的问题是:如何从流中创建文件?或者有比我更简单的方法吗?
===编辑=== 我使用回形针来存储文件。
ruby - 由 rubyzip 压缩的 xlsx 无法被 Excel 读取
我正在编写可以读/写 Excel xlsx 文件的代码。xlsx 文件只是几个 xml 文件的 zip 存档,所以为了测试我是否可以编写文件,我使用名为的 gemrubyzip
解压缩 xlsx 文件,然后立即将其压缩回新存档,而不修改数据. 但是,当我这样做时,我无法打开新的 excel 文件,据说它已损坏。
或者,如果我使用 Mac OS X 的存档实用程序(处理 zip 文件的本机应用程序),并且我解压缩并重新压缩一个 excel 文件,则数据不会损坏,我可以在 Excel 中打开生成的文件。
我发现rubyzip
“破坏”数据的不是“解压缩”功能,而是压缩过程。(事实上,当我对rubyzip
创建的新 zip 文件使用存档实用程序时,Excel 再次可以读取该文件)。
我想知道为什么会发生这种情况,以及有什么解决方案可以以 Excel 可读的方式以编程方式压缩内容。
我的压缩代码:
ruby - rubyzip 文件顺序
我正在为一个目录创建一个存档,其中每个文件都有一个从 001 到 049 的 3 位数字的名称。我的代码如下:
添加文件时,我验证了puts
它们是按数字升序添加的。但是当我尝试用 解压它们时zip
,我发现它们是按随机顺序解压的(例如 045、002、...)。
如何确保它们按数字顺序解压?
编辑:使用十六进制编辑器查看生成的 zip 文件显示图像以不合理的顺序添加,但它们是unzip
按照它们在中央目录中出现的顺序提取的(在 zip 文件末尾的块)。
ruby - RubyZip:归档过程指示
我正在将大量文件添加到我的存档中,它看起来像这样:
将所有文件添加到我的存档后,它开始将它们全部压缩(大约 10-15 分钟)。
我怎样才能表明实际发生了什么rubyzip gem
(实际上我想显示百分比current_file_number/total_files_count
)。
ruby-on-rails - zipruby 还是 rubyzip?
我在这里有一个 ruby on rails 站点(rails 2.0.2,ruby 1.8.6),同时安装了 rubyzip 和 zipruby,但它们在 File.exists 上存在冲突?方法所以我想删除一个。关于未来最好的 zipping api 的普遍共识是什么?
一个比另一个有显着优势吗?
ruby - 无法在带有 RVM 的 OS X Lion 上安装 RubyZip gem
TL;博士:
现在详细说明。我不确定哪些信息是相关的,所以我只想说出来。
- 我最近从 OS X Snow Leopard 升级到了 Lion(也将 Xcode 升级到了 4.2)
- 一切工作正常了一段时间
- 今天我决定安装一些 gem(RSpec、Cucumber),每当我对 RubyGems 进行任何操作时,我都会收到日期格式警告
- 我决定将 RubyGems 从 1.3.6(我不确定)更新到当前的 1.8.11
- 警告不断弹出,因此我尝试使用 删除 gemset,但由于某些权限被拒绝错误,该 gemset也
rvm gemset empty
失败了(是的,愚蠢的我没有写下来) - 结果,我通过and重新安装了 Ruby(在那之后我没有忘记。
rvm remove 1.9.2
rvm install 1.9.2
rvm use 1.9.2 --default
我安装了 bundler
/li>gem install bundle
,然后尝试bundle install
在我的 Rails 3.1.1 项目中安装,但它以错误结束gem install rubyzip -v '0.9.4'
给出上述错误README 文件说要通过 下载源代码并从那里安装
/li>ruby install.rb
,这也以错误结尾即使从 rubyzip 执行测试也会导致一堆错误
/li>我没有想法,我该怎么办?
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 库是否处理压缩远程文件?还是有更好/更简单的方法?
谢谢!
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 不同的类吗?
此外,我压缩的文件不在本地文件系统上,而是存储在云服务中。
ruby-on-rails-3.1 - 如何使用 rubyzip 重命名 zip 文件中的文件和目录
我正在尝试重命名 zip 中的文件和目录。我试过三种不同的,都不起作用。什么是正确的命令?
以下是我的代码的摘录:
如果我在没有任何重命名试用命令的情况下执行,我会得到此输出,因此您可以看到该文件存在于 zip 中。它不是 File 类,而是 Zip::ZipEntry 类,我能够解析新名称。
第一次尝试(未注释),我收到此错误:
第二次尝试(未注释),我收到此错误:
第三次尝试(未注释),我收到此错误:
ruby - 文件名中的 rubyzip 和 unicode 字符
我正在使用rubyzip
gem 和Zip::ZipOutputStream
class 创建 zip 存档,并且遇到了 unicode 字母(西里尔文)的问题 - 在存档中它们显示为问号,例如????? ???? ??.doc
. rubyzip 支持 unicode 吗?