2

私はRubyが初めてです。大きなzipファイルを分割してから、分割したファイルを1つの大きなzipファイルに再度結合する方法はありますか?

分割サンプルのリンクは表示されるが、実行中にエラーが表示される (分割オブジェクト エラー) 分割サンプル リンク

RubyでZipファイルを分割/結合するのを手伝ってくれる人はいますか?

4

1 に答える 1

1

最新のZip::ZipFile.splitruby​​zip バージョン 0.9.9 では使用できません。ソース コードの最新のマスター ブランチにのみ存在します。大きなファイルを小さな部分に分割して後で結合する方法を見つけている場合、または中間の分割結果に依存しない場合はsplit、Unix/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 ファイルを作成する方法を提供します。p7zipまたはを使用WinRARして、分割された 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 のマニュアルを参照してください。詳細については、ページを参照してください。) これは、次のメジャー リリースで間違いなく修正される予定です。

これが必要な場合は、最新の master ブランチを複製し、その lib を使用してジョブを実行できます。

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

分割用のドキュメントをチェックアウトできます

于 2013-05-29T14:55:51.077 に答える