将Zip文件解压缩保存到磁盘

时间:2012-08-23 10:04:25

标签: c# zip

我在URI(例如http://www.abc.com/a.zip)上有一个zip文件,我想打开它并将文件从磁盘保存到磁盘。有没有办法在C#中打开它而不将其保存到磁盘然后将文件从磁盘保存到磁盘?

谢谢,

萨钦

2 个答案:

答案 0 :(得分:4)

使用ZipFile .Net Framework 4.5类或DotNetZip API。

ZipFile.ExtractToDirectory(zipPath, extractPath);

编辑:您可以通过WebClient类的方法准备流或获取URL的字节数组。

string urlStr = "https://xyz.com/sample.zip";

 using (WebClient client = new WebClient())
  {
   byte []bytes=client.DownloadData(urlStr);
   using (MemoryStream ms = new MemoryStream(bytes))
   {
    using (ZipFile zip = ZipFile.Read(ms))
    {
     zip.ExtractAll(@"C:\csnet");
    }
   }
 }

答案 1 :(得分:3)

使用DotNetZip解压缩zip文件而不将存档保存到文件系统的示例。

private static void ExtractFromUrl(Uri uri, string directoryPath)
{
    using (var webClient = new WebClient())
    {
        var data = webClient.DownloadData(uri);
        using (var memoryStream = new MemoryStream(data))
        using (var zipFile = ZipFile.Read(memoryStream))
        {
            zipFile.ExtractAll(directoryPath);
        }                
    }
}