Size: a a a

.NET Chat Убежище

2020 February 23

ФМ

Фомичёв Максим in .NET Chat Убежище
Здрасте
источник

N

Novikov Pavel in .NET Chat Убежище
Фомичёв Максим
Здрасте
😉👋👋👋
источник

ВE

Виталий EasyMod in .NET Chat Убежище
Приветствую, уплотняйтесь
источник

DN

Dima N1ght in .NET Chat Убежище
Фомичёв Максим
Здрасте
Салам братан!!! 👍👏🤪
источник
2020 March 06

А

Алексей in .NET Chat Убежище
Всем добрый день.
Есть необходимость создавать архив из списка файлов для отправки пользователю сайта + пожелание не создавать файл на диске сервера.
источник

А

Алексей in .NET Chat Убежище
метод отрабатывает без ошибок но архив получается битым
источник

А

Алексей in .NET Chat Убежище
public static byte[] Zip(List<string> files)
       {
           using (MemoryStream ms = new MemoryStream())
           {
               using (IOZip.ZipArchive archive = new IOZip.ZipArchive(ms, IOZip.ZipArchiveMode.Create, false))
               {

                   foreach (string fileName in files)
                   {
                       IOZip.ZipArchiveEntry readmeEntry = archive.CreateEntry(Path.GetFileName(fileName));
                       if (File.Exists(fileName))
                       {
                           using (Stream entry = readmeEntry.Open())
                           {
                               using (FileStream fs = File.OpenRead(fileName))
                               {
                                   fs.Position = 0;
                                   fs.CopyTo(entry);
                               }
                           }
                       }
                   }
                   ms.Position = 0;
                   byte[] arch = ms.ToArray();
                   return arch;
               }
           }
источник

А

Алексей in .NET Chat Убежище
7zip успешно распаковывает архив, но ругается на неожиданный конец архива
источник

А

Алексей in .NET Chat Убежище
вопрос: куда копать? как получить нормальный (виндораспакуемый) архив
источник

А

Алексей in .NET Chat Убежище
заранее спасибо.
источник

А

Алексей in .NET Chat Убежище
вот так записываю на диск

byte[] arch = FileZipHelper.Zip(fileNames);
               FileStream file = File.Create(@"c:\temp\zip\test.zip");
               for (int i = 0; i < arch.Length; i++)
               {
                   file.WriteByte(arch[i]);
               }
               file.Flush();
               file.Close();
источник

А

Алексей in .NET Chat Убежище
воттак отправляю
byte[] arch = FileZipHelper.Zip(fileNames);
           Stream fs = new MemoryStream(arch);
           Response.ContentType = "Application/Zip";
           Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
           Response.AppendHeader("Content-Length", fs.Length.ToString());
           Response.Flush();
           fs.CopyTo(Response.OutputStream);

           Response.Flush(); //Release the file so it can be Deleted
           fs.Close();
источник

А

Алексей in .NET Chat Убежище
отбой, всем спасибо )))
archive.Dispose(); перед записью массива байтов помог
источник

ВE

Виталий EasyMod in .NET Chat Убежище
Красава, #схоронил #zip
источник

А

Алексей in .NET Chat Убежище
рад что полезен))
источник

ВE

Виталий EasyMod in .NET Chat Убежище
Алексей
рад что полезен))
Главное что тебе за это бабулесики платят за пользу
источник

А

Алексей in .NET Chat Убежище
один из главных движителей в нашем шебутном мире
источник

А

Алексей in .NET Chat Убежище
натуральный обмен пользы на деньги
источник
2020 March 10

А

Алексей in .NET Chat Убежище
@EasyMod
public static byte[] Zip(List<string> files)
       {
           byte[] arch = null;
           using (MemoryStream ms = new MemoryStream())
           {
               using (IOZip.ZipArchive archive = new IOZip.ZipArchive(ms, IOZip.ZipArchiveMode.Create, true))
               {

                   foreach (string fileName in files)
                   {
                       if (File.Exists(fileName))
                       {
                           IOZip.ZipArchiveEntry readmeEntry = archive.CreateEntry(Path.GetFileName(fileName));
                           using (Stream entry = readmeEntry.Open())
                           {
                               using (FileStream fs = File.OpenRead(fileName))
                               {
                                   fs.CopyTo(entry);
                               }
                           }
                       }
                   }
               }
               //ms.Seek(0, SeekOrigin.Begin);
               arch = ms.ToArray();
           }
           return arch;
       }
источник

А

Алексей in .NET Chat Убежище
чуть более рабочее
источник