Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Berjaya Membuat Arkib ZIP Dalam Memori Menggunakan C# dan Elakkan Ralat 'ZIP Tidak Sah'?

Bagaimana untuk Berjaya Membuat Arkib ZIP Dalam Memori Menggunakan C# dan Elakkan Ralat 'ZIP Tidak Sah'?

Barbara Streisand
Lepaskan: 2025-01-07 00:33:46
asal
268 orang telah melayarinya

How to Successfully Create an In-Memory ZIP Archive Using C# and Avoid the

Mencipta Arkib ZIP dalam Memori Menggunakan System.IO.Compression: Mengatasi Ralat ZIP Tidak Sah

Apabila cuba mencipta arkib ZIP dalam memori menggunakan MemoryStream, anda mungkin menghadapi isu di mana arkib dicipta tetapi kekurangan kandungan yang diingini. Isu ini timbul kerana keperluan untuk menulis bait akhir, seperti jumlah semak, ke arkib untuk melengkapkannya.

Untuk menyelesaikannya, anda boleh menggunakan kod diubah suai berikut:

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);
   }
}
Salin selepas log masuk

Perbezaan utama di sini ialah parameter ketiga dalam pembina ZipArchive, yang ditetapkan kepada benar. Parameter ini menunjukkan bahawa ZipArchive boleh dilupuskan tanpa menutup aliran asas. Ini membolehkan anda menggunakan semula MemoryStream selepas membuat arkib.

Dengan menggunakan kod yang diubah suai, anda boleh berjaya mencipta arkib ZIP dalam ingatan dengan kandungan yang dikehendaki, walaupun semasa menggunakan MemoryStream. Fleksibiliti ini membolehkan anda memanipulasi arkib dalam pelbagai senario tanpa memerlukan pengendalian fail perantaraan.

Atas ialah kandungan terperinci Bagaimana untuk Berjaya Membuat Arkib ZIP Dalam Memori Menggunakan C# dan Elakkan Ralat 'ZIP Tidak Sah'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan