2010-09-14 2 views
1

У меня есть небольшая проблема, и это может быть глупой ошибкой на моей стороне.Dotnetzip, обработчик событий не запускается после сохранения

Вот мой код для создания zip-файла при необходимости и способ добавления файла в архив.

Добавление файла работает без проблем, но по какой-то причине событие не запускается после сохранения.

Я установил точку останова на zipFile_SaveProgress, событие не запускается.


class CoverArchive 
{ 
     private ZipFile zipFile; 
     private String coverArchivePath; 

     public CoverArchive() 
     {   
      coverArchivePath = "Archive\\Covers"; 

      if (!File.Exists("Archive\\Covers")) 
      { 
       CreateZipFile(); 
      } 
      using (zipFile = ZipFile.Read(coverArchivePath)) 
      { 
       //zipFile.AddProgress += zipFile_AddProgress; 
       //zipFile.ExtractProgress += zipFile_ExtractProgress; 
       //zipFile.ZipError += zipFile_ZipError; 
       zipFile.SaveProgress += zipFile_SaveProgress; 
      } 
     } 

     private void CreateZipFile() 
     { 
      zipFile = new ZipFile(); 
      zipFile.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression; 
      zipFile.UseUnicodeAsNecessary = true; 
      if (!Directory.Exists("Archive")) 
       Directory.CreateDirectory("Archive"); 
      zipFile.Save(coverArchivePath); 
     } 

     public void AddCover(List<String> directories, String coverName, Stream fileStream) 
     { 
      try 
      { 
       using (zipFile = ZipFile.Read(coverArchivePath)) 
       { 
        String filePath = createPath(directories, coverName); 
        ZipEntry entry = zipFile.AddEntry(filePath, fileStream); 
        zipFile.Save(); 
       } 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine("Error adding File" + ex); 
      } 
     } 
     private void zipFile_SaveProgress(Object sender, SaveProgressEventArgs e) 
     { 
      if (e.EventType == ZipProgressEventType.Saving_Completed) 
       Console.WriteLine("Save Done"); 
     } 
} 

Большое спасибо заранее :)

ответ

1

Вы добавив обработку событие после вызова Save().
Поэтому, когда он поднял событие SaveProgress, не было никаких обработчиков.

+0

Похоже, что это была проблема, я удалил всю инструкцию using и инструкцию zipFile = ZipFile.Read (coverArchivePath). Тогда это сработало. :) Большое спасибо ;) – Drunkendo

Смежные вопросы