Maison > développement back-end > C++ > Comment créer correctement une archive ZIP en mémoire à l'aide de MemoryStream et System.IO.Compression ?

Comment créer correctement une archive ZIP en mémoire à l'aide de MemoryStream et System.IO.Compression ?

Linda Hamilton
Libérer: 2025-01-07 00:30:39
original
678 Les gens l'ont consulté

How to Properly Create a ZIP Archive in Memory Using MemoryStream and System.IO.Compression?

Utilisation de MemoryStream pour créer une archive ZIP en mémoire avec System.IO.Compression

En essayant de créer une archive ZIP à l'aide d'un MemoryStream, vous pouvez rencontrer un problème où l'archive est générée mais le fichier souhaité est manquant. En effet, ZipArchive nécessite l'écriture des derniers octets pour être terminé. Pour résoudre ce problème :

using (var memoryStream = new MemoryStream())
{
  using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
  {
    var demoFile = archive.CreateEntry("foo.txt");
    
    using (var entryStream = demoFile.Open())
    using (var streamWriter = new StreamWriter(entryStream))
    {
      streamWriter.Write("Bar!");
    }
  }
  
  using (var fileStream = new FileStream(@"C:\Temp\test.zip", FileMode.Create))
  {
    memoryStream.Seek(0, SeekOrigin.Begin);
    memoryStream.CopyTo(fileStream);
  }
}
Copier après la connexion

Passer "true" comme troisième paramètre à ZipArchive vous permet de continuer à utiliser le flux après avoir appelé Dispose, en garantissant que toutes les informations nécessaires sont écrites dans l'archive.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal