答えて
これを自分で実装する方法にもっと興味があるなら、実行可能ファイルにリンクされた圧縮データを持つ静的にリンクされたアプリケーションを持つことができます(例えば、小さなアーカイブの場合はstatic const char data[]
配列十分)。実行時に、解凍ライブラリにデータを送り、実際にファイルを展開します。
実行可能ファイルのオーバーヘッドを小さくするために、ツールキットでリンクする必要がないように、システムAPI(Windowsのプレーンウィンドウコントロールなど)を使用する可能性があります。また、圧縮解除の場合は、圧縮サイズと圧縮解除速度との間で良好な妥協を提供するので、bzip2を使用します。 minilzoは、bzip2よりもコードフットプリントが小さく(実行ファイルが小さくなるため)、はるかに高い圧縮解除速度があるため、圧縮することはできません。
自己解凍アーカイブは、単に抽出プログラムですが、アーカイブファイルからデータを取り出すのではなく、プログラム自体で定義された定数から取得します。それは本当に概念的/アルゴリズム的レベルでは非常に単純なものです。
あなたのサイズを気にしない場合は、下記のような単純なもの持つことができます(それをシンプルに保つためにPythonでexempleを、実際のunarchiverはおそらくCまたはC++ソースからコンパイルされたプログラムになります):
hello_prog = """print "Hello, World"\n""";
f = file("./hello.py", "w");
f.write(hello_prog);
f.close();
実行すると、python実行可能ファイルであるhello.py
というファイルが作成されます。
実際に自動抽出アーカイブを作成する場合は、通常、内部データを圧縮して、アーカイブ全体をできるだけ小さくしたいと考えています。また、抽出プログラムを可能な限り小さくし、ターゲットシステムですでに利用可能なものとできるだけ独立したものにしたいと思っています。それが問題の本当の始まりです。
- 1. Linuxボックスに自己解凍型zipアーカイブを作成する
- 2. C#で自己解凍型実行ファイルを作成する
- 3. 7zip自己解凍アーカイブ(SFX)と.Netインストーラ
- 4. 進捗バーなしでwinzip自己解凍プログラムをサイレントで解凍する方法
- 5. PHPを使用して自己解凍型実行可能ファイルを作成する
- 6. Apple XCode自己解凍装置
- 7. Windows 8でアーカイブを解凍する
- 8. 解凍中にアーカイブ名を取得する方法
- 9. 自己メモリ固定型C++/CLIクラスの作成方法は?
- 10. WCFサービス用にプログラムで自己署名証明書を作成する方法
- 11. 機能の自己完結型パッケージ/ライブラリを作成する方法
- 12. CKEditorで自己終了要素を作成する方法は?
- 13. EC2でOpenSolarisの自己バンボリュームを作成する方法
- 14. Mysqlの自己関係に自己を作る方法は?
- 15. コマンドラインで自己解凍型zipファイルをサイレントモードで実行しようとしています
- 16. .NETでgzipアーカイブを解凍する際の問題
- 17. PythonでJavascriptを解凍する方法
- 18. Javaの自己検査プログラム(自己チェックサム)
- 19. アーカイブを作成してchmodを作成する方法
- 20. pigzで解凍する方法
- 21. 自己再生プログラム
- 22. 自己再生プログラム
- 23. メモリ内にzipアーカイブをダウンロードして解凍する
- 24. Silverlightでフォルダとそのサブフォルダを解凍して解凍する方法は?
- 25. サードパーティ製のvb.netなしでファイルを解凍/解凍する方法
- 26. Scalaのタプル型の解凍
- 27. io.ReadCloserを解凍する方法は?
- 28. gitブランチを解凍する方法は?
- 29. ファイルを解凍する方法
- 30. zipファイルを解凍する方法c#
自己解凍形式のアーカイブ(ZIP形式、RAR形式、カスタム形式)はどのような種類ですか?それはクロスアーキテクチャ(x86/x64/ARM/...)である必要がありますか?クロスプラットフォーム(Win/Lin/Mac)?コンソール/ GUI /ハイブリッド?私たちに詳細を教えてください。 – Piskvor
自己解凍形式の実行可能ファイルを作成します。これだけ重要です。 –
これは、「私はVWバグ、モンスタートラック、バス、アウディv8、トラクタートレーラー、バイク、リンカーンリムジン、または三輪車であれば気にしません。しましょう。" 「ああ、それはおそらく存在する」よりも漠然としていない回答には、より多くのデータが必要です。あなたはおそらく*あまりにも高価ではない乗用車がほしいと思うかもしれませんが、誰もが20の質問をするのは好きではありません。 – Piskvor