jomsk1e
jomsk1e

Reputation: 3625

Extract only XML files from a zip using DotNetZip

I want to extract all XML files in the archive, I am using DotNetZip in extracting files.

In the Documentation of DotNetZip this is the example:

using (ZipFile zip = ZipFile.Read(zipArchiveName))
{
  zip.ExtractSelectedEntries("name = *.xml  and  mtime > 2009-01-15");
}

this is my method:

private void processButton_Click(object sender, EventArgs e)
{
    string uniquePath = string.Format(@"C:\{0}", Guid.NewGuid());
    System.IO.Directory.CreateDirectory(uniquePath);
    using (ZipFile zip = ZipFile.Read(textBox1.Text))
    {
        zip.ExtractSelectedEntries("name = *.xml");
    }
}

but it extracts nothing. How can I extract all xml files using DotNetZip, thanks for your help.

Upvotes: 1

Views: 2383

Answers (1)

KV Prajapati
KV Prajapati

Reputation: 94645

Set uniquePath to current directory,

string uniquePath = string.Format(@"C:\{0}", Guid.NewGuid());
System.IO.Directory.CreateDirectory(uniquePath);
using (ZipFile zip = ZipFile.Read(textBox1.Text))
    {
        System.IO.Directory.SetCurrentDirectory(uniquePath);
        zip.ExtractSelectedEntries("name = *.xml",,ExtractExistingFileAction.OverwriteSilently);
    }

Or use,

var collections=zip.SelectEntries("name=*.xml");
foreach (var t in collections )
{
 t.Extract(uniquePath,ExtractExistingFileAction.OverwriteSilently);
 } 

Upvotes: 1

Related Questions