/// <summary> /// Zips a collection of files /// </summary> /// <param name="files"></param> /// <param name="zipFilePath"></param> /// <param name="compressionLevel"></param> /// <param name="encoding"></param> public static void Zip(IEnumerable <string> files, string zipFilePath, CompressionLevel compressionLevel = CompressionLevel.Optimal, Encoding encoding = null) { if (files == null || files.Count() < 1) { throw new ArgumentException("Source files are invalid", nameof(files)); } else if (string.IsNullOrWhiteSpace(zipFilePath)) { throw new ArgumentException("Path of .ZIP file is invalid", nameof(zipFilePath)); } ZipService.Zip(files.Select(path => new FileInfo(path)), zipFilePath, compressionLevel, encoding); }
/// <summary> /// Zips a collection of files /// </summary> /// <param name="files"></param> /// <param name="zipFilePath"></param> /// <param name="compressionLevel"></param> /// <param name="encoding"></param> /// <param name="cancellationToken"></param> public static Task ZipAsync(IEnumerable <string> files, string zipFilePath, CompressionLevel compressionLevel = CompressionLevel.Optimal, Encoding encoding = null, CancellationToken cancellationToken = default(CancellationToken)) => UtilityService.ExecuteTask(() => ZipService.Zip(files, zipFilePath, compressionLevel, encoding), cancellationToken);
/// <summary> /// Unzips a. ZIP archive file to a folder /// </summary> /// <param name="zipFilePath"></param> /// <param name="destinationPath"></param> /// <param name="cancellationToken"></param> public static Task UnzipAsync(string zipFilePath, string destinationPath, CancellationToken cancellationToken = default(CancellationToken)) => UtilityService.ExecuteTask(() => ZipService.Unzip(zipFilePath, destinationPath), cancellationToken);
/// <summary> /// Zips a folder (with all child contents) /// </summary> /// <param name="sourcePath"></param> /// <param name="zipFilePath"></param> /// <param name="compressionLevel"></param> /// <param name="encoding"></param> /// <param name="cancellationToken"></param> public static Task ZipAsync(string sourcePath, string zipFilePath, CompressionLevel compressionLevel = CompressionLevel.Optimal, Encoding encoding = null, CancellationToken cancellationToken = default) => UtilityService.ExecuteTask(() => ZipService.Zip(sourcePath, zipFilePath, compressionLevel, encoding), cancellationToken);