2

我是红宝石的新手。有什么方法可以拆分一个大的 zip 文件,然后再将拆分的文件加入一个大的 zip 文件?

我可以看到带有拆分示例的链接,但在运行时可以看到错误(拆分对象错误) 拆分示例链接

任何人都可以在 SPlit/join ruby​​ 中的 zip 文件中帮助我吗?

4

1 回答 1

1

在最新的Zip::ZipFile.splitruby​​zip 版本 0.9.9 中不可用。它仅存在于源代码的最新 master 分支中。如果您正在寻找一种将大文件拆分成小部分并在以后加入它们的方法,或者更确切地说,您不依赖中间拆分结果,您可以尝试splitUnix/Linux。例如,您想使用 USB 驱动器复制小文件并将它们加入另一台计算机。

# each file will contain 1048576 bytes
# the file will be splitted into xaa, xab, xac...
# You can add optional prefix to the end of the command
split -b 1048576 large_input_file.zip

# join them some where after
cat x* >large_input_file.zip

rubyzip gem 提供了一种从大型 zip 文件创建多部分 zip 文件的方法。您可以使用p7zipWinRAR解压缩拆分的 zip 文件部分。但是,奇怪的是unzip不支持多部分 zip 文件。说明书unzip说,

尚不支持多部分存档,除非与 zip 结合使用。(所有部分必须按顺序连接在一起,然后zip -F'' (for zip 2.x) or必须对连接的存档执行 zip -FF''(对于 zip 3.x)才能fix'' it. Also, zip 3.0 and later can combine multi-part (split) archives into a combined single-file archive usingzip -s-inarchive -O outarchive''。参见 zip 3 手册页面以获取更多信息。)这肯定会在下一个主要版本中得到纠正。

如果你想要这个,你可以克隆最新的主分支并使用该库来完成这项工作。

$ git clone https://github.com/aussiegeek/rubyzip.git
$ vim split.rb

然后在你的红宝石文件“split.rb”中:

$:.unshift './rubyzip/lib'

require 'zip/zip'

part_zip_count = Zip::ZipFile.split("large_zip_file.zip", 102400, false)
puts "Zip file splitted in #{part_zip_count} parts"

您可以签出文档进行拆分

于 2013-05-29T14:55:51.077 回答