Programmerare, skeptiker, sekulärhumanist, antirasist.
Författare till bok om C64 och senbliven lantis.
Röstar pirat.
2010-12-15
This example shows easy compressing and archiving of files using the WindowsBase library and PowerShell. This code will use the WindowsBase library to create a ZIP archive from a couple of images. In this example, I am working in the C root, and the files I want to add to my ZIP archive are also located there.
#Load some assemblys. (No line break!) [System.Reflection.Assembly]::Load("WindowsBase, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35") #Create a zip file named "MyZipFile.zip". (No line break!) $ZipPackage=[System.IO.Packaging.ZipPackage]::Open("C:\MyZipFile.zip", [System.IO.FileMode]"OpenOrCreate", [System.IO.FileAccess]"ReadWrite") #The files I want to add to my archive: $files = @("/Penguins.jpg", "/Lighthouse.jpg") #For each file you want to add, we must extract the bytes #and add them to a part of the zip file. ForEach ($file In $files) { $partName=New-Object System.Uri($file, [System.UriKind]"Relative") #Create each part. (No line break!) $part=$ZipPackage.CreatePart($partName, "application/zip", [System.IO.Packaging.CompressionOption]"Maximum") $bytes=[System.IO.File]::ReadAllBytes($file) $stream=$part.GetStream() $stream.Write($bytes, 0, $bytes.Length) $stream.Close() } #Close the package when we're done. $ZipPackage.Close()
Now, my image files are archived to one ZIP file.
Categories: PowerShell
Tags: PowerShell
Bjud mig på en kopp kaffe (20:-) som tack för bra innehåll!
[…] Easy archiving of files using PowerShell http://www.winsoft.se/2010/12/easy-archiving-of-files-using-powershell/ […]
[…] This compresses the contents of .in to .out.zip with System.IO.Packaging.ZipPackage following the example here […]