| File: IZipArchiveManager.cs | Web Access |
| Project: src\arcade\src\Common\Microsoft.Arcade.Common\Microsoft.Arcade.Common.csproj (Microsoft.Arcade.Common) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.IO; using System.IO.Compression; using System.Threading.Tasks; namespace Microsoft.Arcade.Common { public interface IZipArchiveManager { /// <summary> /// Opens a given archive. /// </summary> /// <param name="archivePath">Path to the zip archive</param> /// <param name="mode">Access mode</param> ZipArchive OpenArchive(string archivePath, ZipArchiveMode mode); /// <summary> /// Loads an embedded resource and adds it to a target archive. /// </summary> /// <typeparam name="TAssembly">Type from the assembly where the resource is embedded (usually the caller)</typeparam> /// <param name="archivePath">Path to the archive where the file will be added</param> /// <param name="resourceName">Name of the embedded resource</param> /// <param name="targetFileName">New name of the file in the archive</param> Task AddResourceFileToArchive<TAssembly>(string archivePath, string resourceName, string targetFileName = null); /// <summary> /// Creates a file with given content in a given archive. /// </summary> /// <param name="archivePath">Path to the archive</param> /// <param name="targetFilename">New path of the file in the archive</param> /// <param name="content">Content of the file</param> Task AddContentToArchive(string archivePath, string targetFilename, Stream content); /// <summary> /// Creates a file with given content in a given archive. /// </summary> /// <param name="archivePath">Path to the archive</param> /// <param name="targetFilename">New path of the file in the archive</param> /// <param name="content">Content of the file</param> Task AddContentToArchive(string archivePath, string targetFilename, string content); /// <summary> /// Compresses a directory into an archive on a given path. /// </summary> /// <param name="directoryPath">The directory to archive</param> /// <param name="archivePath">Path where to create the archive</param> /// <param name="includeBaseDirectory">When true, includes top-level directory in the archive</param> void ArchiveDirectory(string directoryPath, string archivePath, bool includeBaseDirectory); /// <summary> /// Creates a new archive containing given file. /// </summary> /// <param name="filePath">File to archive</param> /// <param name="archivePath">Path where to create the archive</param> void ArchiveFile(string filePath, string archivePath); } }