Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 25th, 2012  |  syntax: None  |  size: 2.41 KB  |  hits: 24  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. DotNetZip creating zip from subset of other zip
  2. //All files have the same basefilename/
  3.  string basefilename = Path.GetFileNameWithoutExtension(entries[0].FileName);
  4.  MemoryStream memstream = new MemoryStream();
  5.  ZipFile zip = new ZipFile();
  6.  foreach (var entry in entries)
  7.  {
  8.     string newFileName = basefilename + Path.GetExtension(entry.FileName);
  9.     zip.AddEntry(newFileName, entry.OpenReader());
  10.  }
  11.  
  12.  zip.Save(memstream);
  13.  
  14.  //this will later go in an file-io handler class.
  15.  FileStream outstream = File.OpenWrite(@"c:files"+basefilename+ ".zip");
  16.  memstream.WriteTo(outstream);
  17.  outstream.Flush();
  18.  outstream.Close();
  19.        
  20. using (var zip = ZipFile.Read("c:\dir\path\to\existing\zipfile.zip"))
  21. {
  22.     foreach (var name in namesToRemove) // IEnumerable<String>
  23.     {
  24.        zip[name].Remove();
  25.     }
  26.     zip.Save("c:\path\to\new\Archive.zip");
  27. }
  28.        
  29. using (var orig = ZipFile.Read("C:\whatever\OriginalArchive.zip"))
  30. {
  31.     using (var smaller = new ZipFile())
  32.     {
  33.       foreach (var name in entriesToKeep)
  34.       {
  35.          var ms = new MemoryStream();
  36.          orig[name].Extract(ms); // extract into stream
  37.          ms.Seek(0,SeekOrigin.Begin);
  38.          smaller.AddEntry(name,ms);
  39.       }
  40.       smaller.Save("C:\location\of\SmallerZip.zip");
  41.     }  
  42. }
  43.        
  44. using(ZipFile original = ZipFile.Read("C:\path.to\original\Archive.zip"),
  45.       smaller = new ZipFile())
  46. {
  47.     foreach (var name in entriesToKeep)
  48.     {
  49.         zip.AddEntry(zipEntryName,
  50.                      (name) => original[name].OpenReader(),
  51.                      null);
  52.     }
  53.  
  54.     smaller.Save("C:\path.to\smaller\Archive.zip");
  55. }
  56.        
  57. using (ZipFile zip = new ZipFile())
  58. {
  59.    zip.CompressionLevel = CompressionLevel.BestCompression;
  60.    foreach (var entry in entries)
  61.    {
  62.       try
  63.       {
  64.          string newFileName = basefilename + Path.GetExtension(entry.FileName);
  65.          zip.AddFile(newFileName, "");
  66.       }
  67.       catch (Exception) { }
  68.    }
  69.    zip.Save("c:\files\"+basefilename+ ".zip");
  70. }
  71.        
  72. string basefilename = Path.GetFileNameWithoutExtension(entries[0].FileName);
  73. ZipFile zip = new ZipFile();
  74. foreach (var entry in entries){
  75.       CrcCalculatorStream reader = entry.OpenReader();
  76.       MemoryStream memstream = new MemoryStream();
  77.       reader.CopyTo(memstream);
  78.       byte[] bytes = memstream.ToArray();
  79.       string newFileName = basefilename + Path.GetExtension(entry.FileName);
  80.       zip.AddEntry(newFileName, bytes);
  81. }
  82.  
  83. zip.Save(@"c:files" + basefilename + ".zip");