将文件解压缩到上一个文件夹

时间:2013-09-04 13:01:53

标签: c# asp.net zip

我正在使用此代码使用 Ionic.Zip.dll

提取文件
using(ZipFile zip = new ZipFile("E:\\Hello\\Hi\\Photos.zip"))
{
    zip.ExtractAll("E:\\Hello\\Hi\\", ExtractExistingFileAction.DoNotOverWrite);
}

这样可以正常工作并将所有内容解压缩到:“E:\ Hello \ Hi \ Photos”文件夹,在其中创建另一个Photos文件夹。

此处photos.zip文件夹中的所有图像都被提取并保存在创建“照片”

的新文件夹中

我希望所有这些都被提取到“E:\ Hello \ Hi \”而不是另一个Photos文件夹。

2 个答案:

答案 0 :(得分:1)

using(ZipFile zip = new ZipFile("E:\\Hello\\Hi\\Photos.zip"))
{
    zip.FlattenFoldersOnExtract = true;
    zip.ExtractAll("E:\\Hello\\Hi\\", ExtractExistingFileAction.DoNotOverWrite);
}

尝试这样的事情,FlattenFoldersOnExtract将忽略zip中的任何可能的文件夹。

答案 1 :(得分:0)

试一试。

using(ZipFile zip = new ZipFile("E:\\Hello\\Hi\\Photos.zip"))
{
   foreach (ZipEntry e in zip.SelectEntries("*.*"))
   {       
       e.Extract("E:\\Hello\\Hi\\", ExtractExistingFileAction.DoNotOverWrite);
   }
}