Public/Invoke-CreateZipFile.ps1
function global:Invoke-CreateZipFile { <# .EXTERNALHELP HelperFunctions.psm1-Help.xml #> [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [String]$CompressedFileName, [Parameter(Mandatory = $false)] [String]$FileToCompress, [Parameter(Mandatory = $true)] [String]$EntryName, [Parameter(Mandatory = $true)] [String]$ArchiveMode ) begin { if ((Get-DotNetFrameworkVersion).NetFXBuild -ge 4.5) { Add-Type -AssemblyName System.IO.Compression, System.IO.Compression.FileSystem } $compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal } process { 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) } } $archiveEntry = [System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($objCompressedFile, $FileToCompress, $EntryName, $compressionLevel) } end { $objCompressedFile.Dispose() } } #End function Invoke-CreateZipFile |