コンテナファイルを作成するにはどうすればよいですか?
-
09-06-2019 - |
質問
Quake、OO、MS Office 07 のようなファイル形式をアプリ用に作成したいと考えています。
基本的には、圧縮されていない zip フォルダー、または tar ファイルです。
これをクロスプラットフォーム(MacとWindows)にする必要があります。
コマンドプロンプトとbashを介して何かを行うことはできますか?
解決
オープンソースを見てみましょう 7ジップ 圧縮形式。特定のニーズに合わせて、圧縮ゼロですが非常に高速な「アーカイブ」モードで使用できます。
強力な SDK、LZMA が次のサイトから提供されます。
「LZMA は、7-Zip プログラムにおける 7z 形式のデフォルトの一般的な圧縮方法です。LZMA は高い圧縮率と非常に高速な解凍を提供するため、組み込みアプリケーションに非常に適しています。たとえば、ROM (ファームウェア) の圧縮に使用できます。
LZMA SDK は、LZMA 圧縮を使用するアプリケーションの開発に必要なドキュメント、サンプル、ヘッダー ファイル、ライブラリ、およびツールを提供します。
他のヒント
すべてのプラットフォームに移植可能で、構造化データを含む単一のファイルが必要な場合は、sqlite の使用を検討してください。フル機能を備えた ACID 準拠のデータベースが単一のファイルとしてディスク上に存在します。
ファイルに直接アクセスするためにリンクできるライブラリがあり、同様に使用できるコマンド ライン ツールもあります。使用している言語に関係なく、ほとんどの場合、その言語がサポートされています。
ZIP はどこでもサポートされています。コンテナだけで十分であれば、これらは確かに良い選択肢です。
SQLiteは素晴らしいです。
単一のファイル、クロスプラットフォーム、小さなライブラリ、データへの SQL アクセス、トランザクション、エンチラーダ全体。
トランザクションを使用すると、クラッシュの場合でも一貫したリターン ポイントを保証できます。チェック sqliteの使用, 、特にデスクトップ アプリケーションのデータ モデル層として使用することを推奨しています。
また、データに手動でアクセスするためのコマンドライン ツールもあります。
まず自問すべきことは、「本当に自分で作る必要があるのか?」ということです。
使用したい内容に応じて、一般的な形式と、それらの形式の 1 つをすでにうまく処理できる既製のライブラリを使用する方がよいでしょう。
始めるのに適した場所:http://www.destructor.de/libtar/index.htm (tar -- 「コンテナ」形式)http://www.zlib.net/ (zlib -- コンテナにデータを入れる前または後にデータを圧縮する方法)
それでも本当に自分で作成する必要があると考えている場合は、tar の形式など、非常に単純なものを最初に勉強することをお勧めします。
http://en.wikipedia.org/wiki/Tar_(file_format)またはhttp://schmidt.devlib.org/file-formats/tar-archive-file-format.html
フォーマットを作るのではなく、規約だけを決めます。コンテナー内の 1 つ以上の名前付きファイルには、残りのファイルにアクセスするために必要なメタデータが含まれており、そのファイルの処理方法がわかります。ただし、コンテナ自体は zip などの普遍的な形式である必要があります。ここでは車輪を再発明する必要はありません。