在独立存储中解压缩ZIP文件

时间:2014-01-18 16:25:12

标签: c# zip isolatedstorage

我尝试创建一个定期下载ZIP存档(GTFS Feed)的小程序,提取文件并将数据加载到数据库中。这些文件应存储在独立存储中。

但是,我找不到提取ZIP存档的方法。有multiple built-in classes处理解压缩,但它们要么将目录/文件名作为参数,要么不能处理多个文件/目录。

我错过了什么?我们如何将隔离存储中的ZIP文件提取到那里的目录中(不使用第三方库)?

1 个答案:

答案 0 :(得分:2)

打开zip存档并枚举所有条目。打开为您提供流的每个条目,然后将该条目的内容复制到隔离的存储流:

using (ZipArchive archive = ZipFile.OpenRead(zipPath))
{
    foreach (ZipArchiveEntry entry in archive.Entries)
    {
        using (Stream zipStream = entry.Open())
        using (IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream(entry.Name, FileMode.CreateNew, isoStore))
        {
            // copy from zipStream to isoStream
        }
    }
}