Freigeben über


«Зипование» в чистом виде

Хайме Оливаресу (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