Public/Invoke-CreateZipFile.ps1

function global:Invoke-CreateZipFile
{
        <#
            .EXTERNALHELP HelperFunctions.psm1-Help.xml
        #>

    
    [CmdletBinding()]
    param
    (
        [Parameter(Mandatory = $true)]
        [String]$CompressedFileName,
        [Parameter(Mandatory = $true)]
        [String]$FileToCompress,
        [Parameter(Mandatory = $true)]
        [String]$EntryName,
        [Parameter(Mandatory = $true)]
        [String]$ArchiveMode
    )
    
    begin
    {
        switch ($ArchiveMode)
        {
            "Create" { $objCompressedFile = [System.IO.Compression.ZipFile]::Open($CompressedFileName, [System.IO.Compression.ZipArchiveMode]::Create) }
            "Read" { $objCompressedFile = [System.IO.Compression.ZipFile]::Open($CompressedFileName, [System.IO.Compression.ZipArchiveMode]::Read) }
            "Update" { $objCompressedFile = [System.IO.Compression.ZipFile]::Open($CompressedFileName, [System.IO.Compression.ZipArchiveMode]::Update) }
        }
    }
    process
    {
        $compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal
        $archiveEntry = [System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($objCompressedFile, $FileToCompress, $EntryName, $compressionLevel)
        $objCompressedFile.Dispose()
    }
    end {}
    
} #End function Invoke-CreateZipFile