Example #1
0
        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);
                    }
                }
            }
        }
Example #2
0
 public LocalPath CombineWith(LocalPath path)
 {
     return(new LocalPath(Path.Combine(localPath, path.ToString())));
 }
Example #3
0
 public FullPath CombineWith(LocalPath localPath)
 {
     return(new FullPath(Path.Combine(fullPath, localPath.ToString())));
 }