Heim > Backend-Entwicklung > C++ > Wie erstellt man mithilfe von MemoryStream und System.IO.Compression ordnungsgemäß ein ZIP-Archiv im Speicher?

Wie erstellt man mithilfe von MemoryStream und System.IO.Compression ordnungsgemäß ein ZIP-Archiv im Speicher?

Linda Hamilton
Freigeben: 2025-01-07 00:30:39
Original
684 Leute haben es durchsucht

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

Verwenden von MemoryStream zum Erstellen eines ZIP-Archivs im Speicher mit System.IO.Compression

Beim Versuch, ein ZIP-Archiv mithilfe eines MemoryStream zu erstellen, Möglicherweise tritt ein Problem auf, bei dem das Archiv generiert wird, die gewünschte Datei jedoch fehlt. Dies liegt daran, dass ZipArchive zum Abschluss das Schreiben der letzten Bytes erfordert. So beheben Sie dieses Problem:

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);
  }
}
Nach dem Login kopieren

Durch die Übergabe von „true“ als dritten Parameter an ZipArchive können Sie den Stream nach dem Aufruf von Dispose weiter verwenden und sicherstellen, dass alle erforderlichen Informationen in das Archiv geschrieben werden.

Das obige ist der detaillierte Inhalt vonWie erstellt man mithilfe von MemoryStream und System.IO.Compression ordnungsgemäß ein ZIP-Archiv im Speicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage