private static void AddEntries(java.util.zip.ZipFile file, string rootDirectory, string[] newFiles, bool flattenHierarchy) { string destFileName = file.getName(); string tempFileName = Path.GetTempFileName(); ZipOutputStream destination = new ZipOutputStream(new FileOutputStream(tempFileName)); try { CopyEntries(file, destination); if (newFiles != null) { foreach (string str3 in newFiles) { string directoryName; if (flattenHierarchy) { directoryName = Path.GetDirectoryName(str3); } else if (rootDirectory == null) { directoryName = Path.GetPathRoot(str3); } else { directoryName = rootDirectory; } directoryName = directoryName + @"\"; ZipEntry ze = new ZipEntry(str3.Remove(0, directoryName.Length)); ze.setMethod(8); destination.putNextEntry(ze); try { FileInputStream source = new FileInputStream(str3); try { CopyStream(source, destination); } finally { source.close(); } } finally { destination.closeEntry(); } } } } finally { destination.close(); } file.close(); System.IO.File.Copy(tempFileName, destFileName, true); System.IO.File.Delete(tempFileName); }
private static void CopyEntries(java.util.zip.ZipFile source, ZipOutputStream destination, string[] entryNames) { List<ZipEntry> zippedItems = GetZippedItems(source); for (int i = 0; i < entryNames.Length; i++) { foreach (ZipEntry entry in zippedItems) { if (entry.getName() == entryNames[i]) { destination.putNextEntry(entry); InputStream stream = source.getInputStream(entry); CopyStream(stream, destination); destination.closeEntry(); stream.close(); } } } }
private static void CopyEntries(java.util.zip.ZipFile source, ZipOutputStream destination) { foreach (ZipEntry entry in GetZippedItems(source)) { destination.putNextEntry(entry); InputStream stream = source.getInputStream(entry); CopyStream(stream, destination); destination.closeEntry(); stream.close(); } }