2015-11-12 3 views
-2

В моем приложении C# Я пытаюсь создать zip-файл из вложений, которые я получил от пользователя, а затем загрузите zip-файл. Сначала я попытался использовать SharpZipLib, но это не сработало.Создайте и загрузите zip-файл в C#

я получаю следующее сообщение об ошибке:

Thread abort error.

Теперь я пытаюсь использовать

System.IO.Compression;

но что-то не так там, как я получаю эту ошибку:

The type or namespace name 'ZipFile' could not be found (are you missing a using directive or an assembly reference?) 

Я добавил ссылку dll сейчас, когда я пытаюсь сделать

  using (ZipFile zip = new ZipFile()) 
      { 
       zip.CompressionLevel = CompressionLevel.Fastest; 

       zip.AddSelectedFiles(logoimage, "", false); 
       zip.Save(HttpContext.Current.Response.OutputStream); 
      } 

Я получаю эту ошибку,

Cannot declare a variable of static type 'System.IO.Compression.ZipFile'  

Любые мысли?

+0

Вы добавили Dll в качестве ссылки? – EyeSeeSharp

+0

Нет, я не знаю, как это сделать? – mohsinali1317

+0

В своем обозревателе решений щелкните правой кнопкой мыши ваш проект и нажмите «Добавить ссылку», найдите файл DLL, который необходимо импортировать. – EyeSeeSharp

ответ

1

Как ошибка говорит System.IO.Compression.ZipFile является статическим класса, так что вы не можете создать new экземпляр одного.

Класс ZipFile предоставляет только статические методы для сжатия каталога, для сжатия определенного файла, который вы хотите System.IO.Compression.ZipArchive.

0

Посмотрите на How to: Compress and Extract Files на MSDN.

Убедитесь, что у вас есть .NET 4.5 или новее. Я предполагаю, что вы это делаете, поскольку пытаетесь использовать System.IO.Compression.

+0

Да Я пользуюсь 4.5 – mohsinali1317

+0

Можете ли вы обновить свой вопрос кодом? –

+0

Я смотрю на примере, который вы дали, проблема с ZipArchive заключается в том, что он ожидает уже сложенную папку, которая в моем случае неверна. – mohsinali1317

0

С System.Io.Compression вы можете использовать класс GZipStream для сжатия и распаковки потоков.

Как указано here для использования класса ZipFile, вы должны добавить ссылку на сборку System.IO.Compression.FileSystem в свой проект; в противном случае при попытке компиляции вы получите следующее сообщение об ошибке: The name 'ZipFile' does not exist in the current context.