c # архивировать несколько файлов и скачать - не удается открыть файл в проводнике Windows - PullRequest
1 голос
/ 11 июля 2019

Я использую SharpZipLib для архивирования нескольких файлов и загружаю их в мое веб-приложение asp.net c #.После загрузки я не могу открыть zip-архив.Сообщение об ошибке Windows:

Windows не может открыть папку.Сжатая (заархивированная) папка 'filename.zip' недействительна.

Это мой код

        if (Session["lstFilesToZip"] != null)
        {
            List<string> filesToZip = (List<string>)Session["lstFilesToZip"];

            if (filesToZip.Count > 0)
            {    
                Response.AddHeader("Content-Disposition", "attachment; filename=fileName.zip");
                Response.ContentType = "application/zip";

                using (var zipStream = new ZipOutputStream(Response.OutputStream))
                {
                    foreach (string filePath in filesToZip)
                    {
                        byte[] fileBytes = System.IO.File.ReadAllBytes(filePath);

                        var fileEntry = new ZipEntry(Path.GetFileName(filePath))
                        {
                            Size = fileBytes.Length
                        };

                        zipStream.PutNextEntry(fileEntry);
                        zipStream.Write(fileBytes, 0, fileBytes.Length);
                    }

                    zipStream.Flush();                        
                    zipStream.Close();                        
                }
            }
        }

Я уже пытался добавить

zipStream.Dispose();
zipStream.Finish();

безуспех.

Может быть, кто-то может помочь.Я не могу найти проблему.

...