The programming model is the same as for VB or C#, with a few syntactic changes for Powershell. This page will show some examples.
This example just creates a simple zipfile
# Load the assembly - replace this with your own path
[System.Reflection.Assembly]::LoadFrom("c:\\dinoch\\bin\\Ionic.Zip.dll");
$directoryToZip = "c:\\temp";
$zipfile = new-object Ionic.Zip.ZipFile;
$e= $zipfile.AddEntry("Readme.txt", "This is a zipfile created from within powershell.")
$e= $zipfile.AddDirectory($directoryToZip, "home")
$zipfile.Save("ZipFiles.ps1.out.zip");
$zipfile.Dispose();
This example creates a zipfile, using AES 256-bit encryption to encrypt the entries.
# Load the assembly - replace this with your own path
[System.Reflection.Assembly]::LoadFrom("c:\\dinoch\\bin\\Ionic.Zip.dll")
$directoryToZip = "c:\\dinoch\\dev\\powershell"
$zipfile = new-object Ionic.Zip.ZipFile
$zipfile.Encryption = [Ionic.Zip.EncryptionAlgorithm]::WinZipAes256
$zipfile.Password = "Albatros$"
$e= $zipfile.AddEntry("Readme.txt", "This is a zipfile created from within powershell.")
$e= $zipfile.AddSelectedFiles("name != *.zip", $directoryToZip, "home")
$zipfile.Save("ZipFiles.ps1.out.zip")
$zipfile.Dispose()
This example iterates through a set of files, and creates a zipfile containing a single file, for each one.
# Load the assembly - replace this with your own path
[System.Reflection.Assembly]::LoadFrom("c:\\dinoch\\bin\\Ionic.Zip.dll");
foreach ($file in gci $LogPath -filter $FileType -recurse |
where{$_.LastWriteTime -lt [DateTime]::Now.AddDays($DaysOld)})
{
$FileName = $File.FullName
$ZipName = $File.FullName + ".zip"
$zip = new-object Ionic.Zip.ZipFile
$zip.AddFile($FileName, "");
$zip.Save($ZipName)
$zip.Dispose()
}