如何使用ruby拆分/重新加入zip文件



我是Ruby新手。有什么方法可以拆分一个大的zip文件&然后再次加入分割文件到一个大的zip文件?

我可以看到一个带有分裂样本的链接,但是在运行时可以看到一个错误(分裂对象错误)分割示例链接

谁能帮助我在分割/加入zip文件在ruby?

Zip::ZipFile.split在最新的rubyzip 0.9.9版本中不可用。它只存在于源代码的最新主分支中。如果您正在寻找一种将大文件分割成小部分并稍后再将它们连接起来的方法,或者更确切地说,您不依赖于中间分割结果,您可以尝试Unix/Linux的split。例如,您想使用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 using zip -s- inarchive - o outarchive "。请参阅zip 3手册页了解更多信息。)这肯定会在下一个主要版本中得到纠正。

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

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

然后在你的ruby文件"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"

你可以查看文档

相关内容

  • 没有找到相关文章

最新更新