簡體   English   中英

如何使用 ICSharpCode.SharpZipLib.Zip 在 zip 文件中創建多個子文件夾 - 請忽略.. 此問題已解決

[英]How can i create multiple subfolder inside the zip file using ICSharpCode.SharpZipLib.Zip -— please ignore .. this issue has been resolved

我正在從 Azure blob 容器下載文件。 如果我只創建一個目錄,我的代碼工作正常,但如果我嘗試創建多個目錄,zip 文件會損壞。

   var users = new List<long>();
                   users .Add(1);
                   users .Add(2);
                   users .Add(3);    
   foreach (var user in users)
   using (var zipOutputStream = new ZipOutputStream(Response.OutputStream))
               {
   
                   foreach (CloudBlockBlob item in container.ListBlobs(prefix: blobNamePrefix, useFlatBlobListing: true))
                   {
                       zipOutputStream.SetLevel(0);
                       var blob = container.GetBlockBlobReference(item.Name);
                       var entry = new ZipEntry(item.Name);
                       zipOutputStream.PutNextEntry(entry);
                       blob.DownloadToStream(zipOutputStream);
                   }
                   zipOutputStream.Finish();
                   zipOutputStream.Close();
               }
       
               Response.BufferOutput = false;
               Response.AddHeader("Content-Disposition", "attachment; filename=" + "zipFileName.zip");
               Response.ContentType = "application/octet-stream";
               Response.Flush();
               Response.End();
   }

如果我只使用一個用戶,那么它會在 zip 文件中創建一個新文件夾,並在其中添加所有用戶 blob 文件。 但確實為多個工作。

您的問題是使用 zipOutputStream 位於用戶的每個塊內。

它適用於一個用戶,但不適用於多個用戶。

在 using zipOutputStream 塊內移動用戶的 for each 塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM