public void ZipFiles( FileFullPath zipFileName, FullPath baseDir, int?compressionLevel, IEnumerable <FileFullPath> filesToZip) { taskContext.WriteInfo("Zipping {0}", zipFileName); CreateDirectoryTask createDirectoryTask = new CreateDirectoryTask( zipFileName.Directory.ToString(), false); createDirectoryTask.Execute(taskContext); using (FileStream zipFileStream = new FileStream( zipFileName.ToString(), FileMode.Create, FileAccess.ReadWrite, FileShare.None)) { using (ZipOutputStream zipStream = new ZipOutputStream(zipFileStream)) { if (compressionLevel.HasValue) { zipStream.SetLevel(compressionLevel.Value); } buffer = new byte[1024 * 1024]; foreach (FileFullPath fileName in filesToZip) { LocalPath debasedFileName = fileName.ToFullPath().DebasePath(baseDir); string cleanName = ZipEntry.CleanName(debasedFileName.ToString()); //environment.LogMessage("Zipping file '{0}'", basedFileName); AddFileToZip(fileName, cleanName, zipStream); } } } }
public LocalPath CombineWith(LocalPath path) { return(new LocalPath(Path.Combine(localPath, path.ToString()))); }
public FullPath CombineWith(LocalPath localPath) { return(new FullPath(Path.Combine(fullPath, localPath.ToString()))); }