簡體   English   中英

使用 ZipArchive C# 將壓縮的 Byte[] 下載到磁盤

[英]Download compressed Byte[] to disk using ZipArchive C#

我有一個壓縮字節數組,我想以 .zip 文件的形式下載到服務器。 使用以下代碼,文件大小顯示正確的壓縮大小。 但是當我 go 打開文件時,它說 .zip 文件無效。 我是否需要以某種方式將內容類型設置為 application/zip?

using var compressedStream = new MemoryStream(fileBytes);
var fileStream = new FileStream(@"<file directory\xxx.zip", FileMode.Create, FileAccess.Write);
            compressedStream.CopyTo(fileStream);
            fileStream.Dispose();

使用以下代碼段壓縮文件:

 byte[]? archiveFile = Array.Empty<byte>();
                        byte[]? fileBytes = System.IO.File.ReadAllBytes(file);

                        using var archiveStream = new MemoryStream();

                        using (var archive = new ZipArchive(archiveStream, ZipArchiveMode.Create, true))
                        {
                            var zipArchiveEntry = archive.CreateEntry(file, CompressionLevel.SmallestSize);
                            using var zipStream = zipArchiveEntry.Open();
                            zipStream.Write(fileBytes, 0, fileBytes.Length);
                        }

                        archiveFile = archiveStream.ToArray();

最近我正忙於構建一個服務,該服務從 API 檢索文件作為具有屬性列表的字節 [],其中一個包含文件擴展名。 該服務將這些文件存儲在具有正確文件擴展名的 Blob 存儲中。 要從 byte[] 創建文件,您可以使用以下代碼。

File.WriteAllBytes("somePath/file.zip", theByteArray);

文件可以在給定的路徑中找到。 如果您未指定特定路徑,則在完成運行后,該文件將在項目的“bin”文件夾內的某處找到。 請記住在您的第一個參數中添加 .zip 擴展名,否則將創建一個沒有擴展名的文件。 作為第二個參數傳入一個byte[] 在這里工作正常。

暫無
暫無

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

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