答えて
これを自分で実装する方法にもっと興味があるなら、実行可能ファイルにリンクされた圧縮データを持つ静的にリンクされたアプリケーションを持つことができます(例えば、小さなアーカイブの場合は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. 自己解凍型exe C#.net 4.0を作成するには
- 5. C#で7z自己解凍型.exeファイルをプログラムで開く方法
- 6. 進捗バーなしでwinzip自己解凍プログラムをサイレントで解凍する方法
- 7. Node.jsでPHPアーカイブを作成して解凍する
- 8. .jarファイルを自己解凍して自動実行する方法
- 9. Node.jsでzlibを使ってアーカイブを解凍する方法は?
- 10. PHPを使用して自己解凍型実行可能ファイルを作成する
- 11. Apple XCode自己解凍装置
- 12. Windows 8でアーカイブを解凍する
- 13. 起動時にEHCACHE自己投入型キャッシュをプログラムで作成する
- 14. 解凍中にアーカイブ名を取得する方法
- 15. 自己メモリ固定型C++/CLIクラスの作成方法は?
- 16. WCFサービス用にプログラムで自己署名証明書を作成する方法
- 17. 自己解凍プログラムはどのように機能しますか?
- 18. 機能の自己完結型パッケージ/ライブラリを作成する方法
- 19. EC2でOpenSolarisの自己バンボリュームを作成する方法
- 20. CKEditorで自己終了要素を作成する方法は?
- 21. Mysqlの自己関係に自己を作る方法は?
- 22. コマンドラインで自己解凍型zipファイルをサイレントモードで実行しようとしています
- 23. Windowsスマート画面エラー7ジップ自己解凍ファイル
- 24. reactxで自己完結型コンポーネントを実装する方法は?
- 25. .NETでgzipアーカイブを解凍する際の問題
- 26. Javaの自己検査プログラム(自己チェックサム)
- 27. アーカイブを解凍する方法「アーカイブは正常に処理されました」出力
- 28. PythonでJavascriptを解凍する方法
- 29. アーカイブを作成してchmodを作成する方法
- 30. 問題を解決する自己完結型.NetCore App
自己解凍形式のアーカイブ(ZIP形式、RAR形式、カスタム形式)はどのような種類ですか?それはクロスアーキテクチャ(x86/x64/ARM/...)である必要がありますか?クロスプラットフォーム(Win/Lin/Mac)?コンソール/ GUI /ハイブリッド?私たちに詳細を教えてください。 – Piskvor
自己解凍形式の実行可能ファイルを作成します。これだけ重要です。 –
これは、「私はVWバグ、モンスタートラック、バス、アウディv8、トラクタートレーラー、バイク、リンカーンリムジン、または三輪車であれば気にしません。しましょう。" 「ああ、それはおそらく存在する」よりも漠然としていない回答には、より多くのデータが必要です。あなたはおそらく*あまりにも高価ではない乗用車がほしいと思うかもしれませんが、誰もが20の質問をするのは好きではありません。 – Piskvor