0

我正在使用此代码使用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.zip 文件夹中的所有图像都被提取并保存在创建的“照片”新文件夹中

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

4

2 回答 2

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

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

于 2013-09-04T13:40:57.310 回答
0

试试看。

using(ZipFile zip = new ZipFile("E:\\Hello\\Hi\\Photos.zip"))
{
   foreach (ZipEntry e in zip.SelectEntries("*.*"))
   {       
       e.Extract("E:\\Hello\\Hi\\", ExtractExistingFileAction.DoNotOverWrite);
   }
}
于 2013-09-04T13:13:32.947 回答