問題タブ [libzip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4552 参照

build - libzip ライブラリをビルドするには?

Windows 10 x64 でビルドしようとすると問題が発生します。

私の環境は

私がしたことは、libzip サイトでプロジェクトをダウンロードし、CLion IDE (最終バージョン) を開いてコンパイルを試みることでした。

エラーのあるビルドプロセス全体は、リンクにあります。 http://pastebin.com/KTPtm5z3

宣言されていない変数の数がエラーとして表示されます。

この問題の原因とその理由は?

このリポジトリミラー リポジトリ libzip v0.9で問題なくライブラリ バージョン libzip をコンパイルできますが、libzip の最新バージョンが必要です。

0 投票する
2 に答える
986 参照

c++ - libzip 内のシンボリック リンク

シンボリック リンクを含むディレクトリを圧縮/解凍できる必要がある Linux 用の C++ アプリケーションで libzip を使用しています。リンクをたどらずにリンク自体を追加したい。readlink() でリンクを読み込んで zip アーカイブに追加すると、unzip で解凍するとナンセンスな標準ファイルが生成されます。

ソリューションは移植可能である必要はありません。Linux でのみ使用されます。Linux zip コマンドには --symlinks フラグがあるため、zip 標準でサポートされている必要があります。システム コールは実際にはオプションではありません。ファイルの数が非常に多く、アプリケーションが非常に遅くなります。

libzip でシンボリックリンクを追加することは可能ですか?

ありがとう、サンダー

0 投票する
1 に答える
983 参照

linux - libzip の仕組みを理解する

今日、libzip ライブラリの使用を開始しました。しかし、libzip がどのように機能するかの原則がわかりません。

私の焦点は、すべてのファイルとディレクトリを含むディレクトリをzipファイルに圧縮することです。

したがって、私はから始めてzip_open()、ディレクトリの内容を読み、すべてのディレクトリをzip_dir_add()アーカイブに追加しました。その後、zipファイルを.zipで閉じましたzip_close()。すべてが大丈夫でした。次のステップは、すべてのファイルをアーカイブに追加することです zip_file_add()。しかし、うまくいきません。ファイルを閉じる最後のステップが失敗します。

OK、これを行うために zip_source を作成するのを忘れていました。このソースを取得するために、1 行前にステートメントを追加しました ( zip_source_file())。しかし、それでもうまくいきません。

私の考えのどこが間違っているのでしょうか? fopen()ファイルシステム上のfclose()ファイルも必要ですか?

zip_source_file() と zip_source_filep() の違いは何ですか?

0 投票する
1 に答える
884 参照

c++ - Mac での libzip のコンパイル: アーキテクチャ x86_64 の未定義シンボル

私は C++ を学んでいて、アーカイブ ファイル (Word など) で libzip を使用して単純なファイル リーダーを作成しようと決めました。

最近、brew を使用して Macbook に libzip をインストールしましたが、libzip を使用するプログラムをコンパイルしようとすると、常に次の問題が発生するようです。

コンパイルに使用するコマンド:

main.cpp:

0 投票する
1 に答える
961 参照

bzip2 - C++ で libbz2 ライブラリを使用してメモリ バッファ内の pbzip2 データを解凍する方法

私は bz2_bzdecompress API を呼び出す bzip2 データを解凍する作業バージョンを持っています。それはこのようなものになります

これは、ネイティブの bzip2 圧縮ファイルに対してはうまく機能しますが、pbzip2 (Parallel Bzip2) および「分割可能な」bzip2 データに対しては、「BZ_PARAM_ERROR」がスローされます。

ドキュメントのpbzip2がこれを言っているのを見ます-

pbzip2 で圧縮されたデータは複数のストリームに分割され、各ストリームは次のように bzip2 圧縮されます。 --|-----|-----|-----]

pbzip2 で作成されたデータを圧縮解除するために libbzip2 を使用してソフトウェアを作成している場合は、データに複数の bzip2 ストリームが含まれていることを考慮する必要があります。そのため、各ストリームの後に libbzip2 からのストリームの終わりマーカーに遭遇し、存在するかどうかを確認するために先読みする必要があります。終了する前に処理するストリームは以上です。bzip2 プログラム自体が、この状態を自動的に処理します。

ソース: http://compression.ca/pbzip2/

誰かがこれを処理する方法を教えてもらえますか? 他の libzip2 API を使用する必要がありますか?

また、pbzip2 ファイルは、通常の「bunzip2」コマンドと互換性があります。私のコードが BZ_PARAM_ERROR をスローしている間、bzip2 はこれをどのように適切に処理しますか?

ありがとう。

0 投票する
1 に答える
4215 参照

c++ - libzip を使用してファイルをディスクに解凍する

c++ と libzip ライブラリを使用して実行可能ファイルを解凍しようとしています。同様の質問に対するrodrigoの回答から始めて、次のサンプルコードにたどり着きました。

私が理解していることから、このコードはファイルを解凍するために機能しますが、winzip のようなツールを使用して zip ファイルを抽出するのと同じように、そのファイルをディスクに書き込む方法がわかりません。解凍されたデータをメモリに保存しても役に立ちませんが、ファイルを実際にディスクに保存する方法がわかりません。