«Зипование» в чистом виде
Хайме Оливаресу (Jaime Olivares) надоело использовать пространство имен java.util.zip и обращаться к вызовам API оболочки для создания zip-файлов. Хайме решил сделать полноценный класс .Net 3.0 / 3.5, который может создавать архивы и добавлять в них файлы.
Вот краткий пример сжатия файла:
1: ZipStorer zip;
2:
3: if (this.RadioCreate.Checked)
4: // Создать новый zip-файл
5: zip = ZipStorer.Create(TextStorage.Text, "Generated by ZipStorer class");
6: else
7: // Открыть созданный zip-файл
8: zip = ZipStorer.Open(TextStorage.Text, FileAccess.Write);
9:
10: // Сохранить все файлы в zip-архиве
11: foreach (string path in listBox1.Items)
12: {
13: zip.AddFile(path, Path.GetFileName(path), "");
14: }
15:
16: // Создать текстовый поток в памяти
17: MemoryStream readme = new MemoryStream(
18: System.Text.Encoding.UTF8.GetBytes(string.Format("{0}\r\nThis file
19: has been {1} using the ZipStorer class, by Jaime Olivares.",
20: DateTime.Now, this.RadioCreate.Checked ? "created" : "appended")));
21:
22: // Сохранить новый файл прямо их потока
23: zip.AddStream("readme.txt", readme, DateTime.Now, "Please read");
24: readme.Close();
25:
26: // Обновить и закрыть zip-файл
27: zip.Close();
Еще одна отличная возможность этого класса — его применение с .Net Compact Framework.
Comments
Anonymous
December 19, 2008
к сожалению исходники там не скачать, можно их куда-то выложитьAnonymous
August 02, 2009
New version of ZipStorer with compression: http://zipstorer.codeplex.com ZipStorer just need .net 2.0