[Tips]DotNetZipライブラリを使用して、Zipファイルを解凍する

これまでに下記の記事でZipファイルを作成する方法を紹介しました。

今回は、Zipファイルを解凍する関数を作ってみたので紹介します。

[void][System.Reflection.Assembly]::LoadFrom("c:\work\Ionic.Zip.dll")

function Unpack-Zip([string]$TargetFile, [string]$TargetDir)
{
    $zipfile =  new-object Ionic.Zip.ZipFile
    #解凍するファイルの読み込み
    $zip = [Ionic.Zip.ZipFile]::Read($TargetFile)
    if ($TargetDir.Length -eq 0)
    {
        $TargetDir = Split-Path $TargetFile -Parent
    }
    $zip | %{$_.Extract($TargetDir, [Ionic.Zip.ExtractExistingFileAction]::OverWriteSilently)}
    Write-Host "解凍が完了しました!!"
}

Ionic.Zip.dllの使用方法については、過去記事を参照ください。

ZipファイルはExtractメソッドで行っています。

Extractメソッドの引数にOverWriteSilentlyを渡しているので、ファイルが既存する場合には上書きされます。

この関数の書式は

Unpack-Zip 解凍するファイルのパス [解凍先ディレクトリ]

です。

解凍先ディレクトリは省略することができ、省略した場合はZipファイルがあるディレクトリに解凍されます。

コメント

タイトルとURLをコピーしました