Переметиться к: ArchiveMember · CompressionMethod · ZipArchive · ZipException
Пример:
// Прочитать существующий zip-файл. import std.digest.crc, std.file, std.stdio, std.zip; void main(string[] args) { // чтение zip-файла в память auto zip = new ZipArchive(read(args[1])); writeln("Archive: ", args[1]); writefln("%-10s %-8s Name", "Length", "CRC-32"); // перебрать в цикле все члены zip-архива foreach (name, am; zip.directory) { // вывести некоторые данные о каждом члене архива writefln("%10s %08x %s", am.expandedSize, am.crc32, name); assert(am.expandedData.length == 0); // распаковать архивный файл zip.expand(am); assert(am.expandedData.length == am.expandedSize); } } // Создание и запись нового zip-файла. import std.file : write; import std.string : representation; void main() { char[] data = "Test data.\n".dup; // Создать объект ArchiveMember для тестового файла. ArchiveMember am = new ArchiveMember(); am.name = "test.txt"; am.expandedData(data.representation); // Создать архив и добавить в него новый член. ZipArchive zip = new ZipArchive(); zip.addMember(am); // Построить архив. void[] compressed_data = zip.build(); // Записать в файл. write("test.zip", compressed_data); }
Исходный код: std/zip.d
Переметиться к: comment · compressedData · compressedSize · compressionMethod · crc32 · diskNumber · expandedData · expandedSize · extra · extractVersion · fileAttributes · flags · index · internalAttributes · name · time
Переметиться к: addMember · build · comment · data · deleteMember · directory · diskNumber · diskStartDir · expand · isZip64 · numEntries · this · totalEntries
Пример:
ZipArchive archive = new ZipArchive(data); foreach (ArchiveMember am; archive.directory) { writefln("member name is '%s'", am.name); }
Переметиться к: 2
void[] buffer | всё содержимое архива. |