2011-08-30 6 views
8

オンザフライでzipファイル(zip file formatはgzipやその他の圧縮形式ではない)を作成するためのライブラリがあります非常に大きなファイル(4Gb以上)の場合は圧縮します。ストリーミングのためのCのオンザフライ圧縮ライブラリ

圧縮率はあまり重要ではありません(主にメディアファイル)。

ライブラリにはCインタフェースがあり、DebianとOSXで動作する必要があります。

+0

どのOSを目指していますか? – karlphillip

+0

@karlphillipごめんなさい。 DebianとOSXのサポートが必要です。 –

答えて

4

作者libarchiveは、任意の形式をサポートします(this example参照)オンザフライで、そしてメモリ内のファイルでさえも。

+0

非常に有望です。それをチェックします。 –

3

zlibはチャンクによる圧縮をサポートしています。ライブラリがまだ次のチャンクを圧縮している間に、小さなチャンクを圧縮した直後に送ることができるはずです。

(残念ながら、ファイルテーブルはzipファイルの最後に格納されているので、それは、受信側で完了するまで、ファイルが使用できなくなります)

+0

zlibがzipファイルを処理できないという印象を受けましたか? http://www.zlib.net/zlib_faq.html#faq11を参照してください。 –

+1

zipファイルについて言えば、ランダムアクセスを簡略化するためにディレクトリは最後に追加されますが、ファイルエントリ自体は順番に書き込まれます。最後のディレクトリは便宜上のものです。 –

+0

@DanielW:zlibを使ってzipファイルを作成する 'contrib/minizip'と同じFAQリンクがありますので、明らかにできます。 – Hasturkun

1

この質問は古くて既に回答されていますが、私はこれを見つけた人にとっては新しい可能性のある解決策に気付くでしょう。

https://github.com/CTrabant/fdzipstream

は、私がここにあり、私はZLIBを使用するものを作成した法案に合うものを見つけていないC.にストリーミング方式でZIPアーカイブを作成したポータブルと非常に小さな図書室、非常によく似たものを、必要に応じて

そのコードはzlibのみに依存し、基本的にZIPアーカイブを作成するための簡単なインターフェイスを提供します。最も重要なのは(私のために)出力ストリームがシーク可能である必要がないので、出力をパイプ、ソケットにストリーミングすることができます。コードは非常に小さく、単一のソースファイルとヘッダーファイルです。 OSXとLinux、おそらく他の場所で動作します。私を超えて誰かを助けてくれることを願って...

関連する問題