将.zip文件转换为字节数组并从字节数组重新创建.zip

时间:2016-08-25 18:04:12

标签: c# .net zip

我已将.zip文件转换为byte [],现在我正在尝试将byte []转换回原始的.zip文件。我用完了我尝试过的选项。有人给我一个指针我怎么能实现这个目标?

1 个答案:

答案 0 :(得分:1)

你想要System.IO.Compression.ZipArchive class

using (ZipArchive zip = ZipFile.Open("test.zip", ZipArchiveMode.Create))
{
    var entry = zip.CreateEntry("File Name.txt");
    using (StreamWriter sw = new StreamWriter(entry.Open()))
    {
        sw.Write("Some Text");  
    }
}

using (ZipArchive zip = ZipFile.Open("test.zip", ZipArchiveMode.Read))
{
    foreach (ZipArchiveEntry entry in zip.Entries)
    {
        using (StreamReader sr = new StreamReader(entry.Open()))
        {
            var result = sr.ReadToEnd();
        }
    }
}

您可能不想首先将原始zip文件读入字节数组,然后尝试将其解压缩。而是通过此辅助方法访问它。

注意使用ZipArchive.Entries访问存储在单个zip存档中的子文件;当我第一次学习使用zip文件时,这让我兴奋不已。