diff --git a/src/ModularPipelines/Context/IZip.cs b/src/ModularPipelines/Context/IZip.cs index 5c5c8330bf..5c2dc1ac01 100644 --- a/src/ModularPipelines/Context/IZip.cs +++ b/src/ModularPipelines/Context/IZip.cs @@ -4,13 +4,42 @@ namespace ModularPipelines.Context; +/// +/// Provides ZIP compression and decompression functionality for folders and files. +/// public interface IZip { + /// + /// Compresses a folder into a ZIP file using optimal compression level. + /// + /// The folder to compress. + /// The path where the ZIP file will be created. + /// A representing the created ZIP file. public File ZipFolder(Folder folder, string outputPath) => ZipFolder(folder, outputPath, CompressionLevel.Optimal); + /// + /// Compresses a folder into a ZIP file with the specified compression level. + /// + /// The folder to compress. + /// The path where the ZIP file will be created. + /// The level of compression to use. + /// A representing the created ZIP file. public File ZipFolder(Folder folder, string outputPath, CompressionLevel compressionLevel); + /// + /// Extracts a ZIP file to a folder, overwriting existing files by default. + /// + /// The path to the ZIP file to extract. + /// The path where the contents will be extracted. + /// A representing the extraction destination folder. public Folder UnZipToFolder(string zipPath, string outputFolderPath) => UnZipToFolder(zipPath, outputFolderPath, true); + /// + /// Extracts a ZIP file to a folder with control over whether to overwrite existing files. + /// + /// The path to the ZIP file to extract. + /// The path where the contents will be extracted. + /// If true, existing files will be overwritten; otherwise, an exception is thrown for conflicts. + /// A representing the extraction destination folder. public Folder UnZipToFolder(string zipPath, string outputFolderPath, bool overwriteFiles); } \ No newline at end of file