/// <summary> /// Create a zip archive sending output to the <paramref name="outputStream"/> passed. /// </summary> /// <param name="outputStream">The stream to write archive data to.</param> /// <param name="sourceDirectory">The directory to source files from.</param> /// <param name="recurse">True to recurse directories, false for no recursion.</param> /// <param name="fileFilter">The <see cref="PathFilter">file filter</see> to apply.</param> /// <param name="directoryFilter">The <see cref="PathFilter">directory filter</see> to apply.</param> public void CreateZip(Stream outputStream, string sourceDirectory, bool recurse, string fileFilter, string directoryFilter) { NameTransform = new ZipNameTransform(sourceDirectory); sourceDirectory_ = sourceDirectory; using (outputStream_ = new ZipOutputStream(outputStream)) { #if !NETCF_1_0 if (password_ != null) { outputStream_.Password = password_; } #endif FileSystemScanner scanner = new FileSystemScanner(fileFilter, directoryFilter); scanner.ProcessFile += new ProcessFileHandler(ProcessFile); if (this.CreateEmptyDirectories) { scanner.ProcessDirectory += new ProcessDirectoryHandler(ProcessDirectory); } if (events_ != null) { if (events_.FileFailure != null) { scanner.FileFailure += events_.FileFailure; } if (events_.DirectoryFailure != null) { scanner.DirectoryFailure += events_.DirectoryFailure; } } scanner.Scan(sourceDirectory, recurse); } }
public void CreateZip(Stream outputStream, string sourceDirectory, bool recurse, IScanFilter fileFilter, IScanFilter dicFilter) { NameTransform = new ZipNameTransform(sourceDirectory); this.sourceDirectory = sourceDirectory; using (this.outputStream = new ZipOutputStream(outputStream)) { #if !NETCF_1_0 if (password != null) { this.outputStream.Password = password; } #endif var scanner = new FileSystemScanner(fileFilter, dicFilter); scanner.ProcessFile += ProcessFile; if (CreateEmptyDirectories) { scanner.ProcessDirectory += ProcessDirectory; } if (events != null) { if (events.FileFailure != null) { scanner.FileFailure += events.FileFailure; } if (events.DirectoryFailure != null) { scanner.DirectoryFailure += events.DirectoryFailure; } } scanner.Scan(sourceDirectory, recurse); } }