[英]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.