std.zip
zip 書庫 の読み書きを行います。 etc.c.zlib 圧縮ライブラリを使用しています。BUGS:
- 分割zip書庫には非対応です
- Zip version 20 形式のみ対応です
- 圧縮モード 0 (非圧縮) と 8 (deflate) のみ対応です
- 暗号化には非対応です
- Bugzilla 592
- Bugzilla 1832
- Bugzilla 2137
- Bugzilla 2138
std/zip.d License:
Boost License 1.0. Authors:
Walter Bright
- エラー時に投げる例外
- ZipArchive の一つ一つののメンバを表現
- 読み取り専用
- 読み取り専用
- 書き込み可能: 通常は0
- 書き込み可能: 0は非圧縮、8はdeflate
- 書き込み可能: メンバの最終更新日時。DOS の date/time 形式で表現されています
- 読み取り専用: 巡回冗長検査 (CRC) 値
- 読み取り専用: 圧縮後のデータサイズ
- 読み取り専用: 非圧縮状態でのデータサイズ
- 読み取り専用: 0
- 書き込み可能
- 書き込み可能
- 書き込み可能: 通常は、書庫メンバのファイル名です。書庫の directory のインデックス
として内部で使用されていますので、各メンバは書庫内で唯一の name[] を持つ必要が
あります。また、name の変更は directory からメンバを削除してから行わなければなりません。
- 書き込み可能: このメンバのExtraデータ
- 書き込み可能: このメンバに関連付けられたコメント
- 読み取り専用: 圧縮後のデータ
- 書き込み可能: 非圧縮状態のデータ
- 書庫全体を表すオブジェクト。
ZipArchives は ArchiveMembers の集まりです
- 読み取り専用: 書庫全体のデータを表す配列
- 読み取り専用: 分割zipに非対応なため、常に0です
- 読み取り専用: 分割zipに非対応なため、常に0です
- 読み取り専用: directory内のArchiveMemberの個数
- 読み取り専用: numEntries と同義
- 書き込み可能: 書庫につけるコメント。65536バイト未満でなければなりません
- 読み取り専用: メンバの名前によってインデックスのついた配列。
Example:
foreachループによって、全てのメンバにアクセスできます:ZipArchive archive = new ZipArchive(data); foreach (ArchiveMember am; archive.directory) { writefln("member name is '%s'", am.name); }
- this();
- 書庫を新規作成するときに使用するコンストラクタです。
- de を書庫に追加します。
- de を書庫から削除します。
- 現在のメンバを元に、書庫ファイルを構築します。
以下のプロパティが設定されます。 data[], diskNumber, diskStartDir, numEntries, totalEntries, directory[]。 またそれぞれの ArchiveMember について、 crc32, compressedSize, compressedData[] が設定されます。
Returns:
書庫全体を表す配列を返します。
- this(void[] buffer);
- 既存の書庫を読み込む際に使用するコンストラクタです
以下のプロパティが設定されます。 data[], diskNumber, diskStartDir, numEntries, totalEntries, comment[], directory[]。 またそれぞれの ArchiveMember について、 madeVersion, extractVersion, flags, compressionMethod, time, crc32, compressedSize, expandedSize, compressedData[], diskNumber, internalAttributes, externalAttributes, name[], extra[], comment[]. 展開済みデータを ArchiveMember から得るには、expand() を使ってください。
Params:
void[] buffer 書庫全体の内容
- 書庫のメンバ de の内容を展開し、
展開済みデータを返します。
以下のプロパティが設定されます。extractVersion, flags, compressionMethod, time, crc32, compressedSize, expandedSize, expandedData[], name[], extra[]。