gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 16:30:32 26 4
gpt4 key购买 nike

我是 Ruby 新手。有什么方法可以拆分一个大的 zip 文件,然后再次将拆分的文件合并为一个大的 zip 文件?

我可以看到带有拆分样本的链接,但在运行时可以看到错误(拆分对象错误) split sample link

任何人都可以帮助我拆分/加入 ruby​​ 中的 zip 文件吗?

最佳答案

Zip::ZipFile.split 在最新的 ruby​​zip 版本 0.9.9 中不可用。它只存在于源码最新的master分支中。如果您正在寻找一种将大文件拆分成小部分并稍后加入它们的方法,或者更确切地说,您不依赖于中间拆分结果,则可以尝试 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 不支持多部分压缩文件。 unzip 的手册说,

Multi-part archives are not yet supported, except in conjunction with zip. (All parts must be concatenated together in order, and then zip -F'' (for zip 2.x) orzip -FF'' (for zip 3.x) must be performed on the concatenated archive in order to 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''. See the zip 3 manual page for more information.) This will definitely be corrected in the next major release.

如果需要,您可以克隆最新的 master 分支并使用该库来完成这项工作。

$ 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"

您可以查看 docs for split

关于ruby - 如何使用 ruby​​ 拆分/重新加入 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16812019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com