Here are two functions for compressing and decompressing files using GZip.
These have been tested on Windows 10.
Function Gunzip-File([ValidateScript({Test-Path $_})][string]$File){ $srcFile = Get-Item -Path $File $newFileName = Join-Path -Path $srcFile.DirectoryName -ChildPath $srcFile.BaseName try { $srcFileStream = New-Object System.IO.FileStream($srcFile.FullName,([IO.FileMode]::Open),([IO.FileAccess]::Read),([IO.FileShare]::Read)) $dstFileStream = New-Object System.IO.FileStream($newFileName,([IO.FileMode]::Create),([IO.FileAccess]::Write),([IO.FileShare]::None)) $gzip = New-Object System.IO.Compression.GZipStream($srcFileStream,[System.IO.Compression.CompressionMode]::Decompress) $gzip.CopyTo($dstFileStream) } catch { Write-Host "$_.Exception.Message" -ForegroundColor Red } finally { $gzip.Dispose() $srcFileStream.Dispose() $dstFileStream.Dispose() } }
Function Gzip-File([ValidateScript({Test-Path $_})][string]$File){ $srcFile = Get-Item -Path $File $newFileName = "$($srcFile.FullName).gz" try { $srcFileStream = New-Object System.IO.FileStream($srcFile.FullName,([IO.FileMode]::Open),([IO.FileAccess]::Read),([IO.FileShare]::Read)) $dstFileStream = New-Object System.IO.FileStream($newFileName,([IO.FileMode]::Create),([IO.FileAccess]::Write),([IO.FileShare]::None)) $gzip = New-Object System.IO.Compression.GZipStream($dstFileStream,[System.IO.Compression.CompressionMode]::Compress) $srcFileStream.CopyTo($gzip) } catch { Write-Host "$_.Exception.Message" -ForegroundColor Red } finally { $gzip.Dispose() $srcFileStream.Dispose() $dstFileStream.Dispose() } }
I’m now not certain the place you are getting your info, but good topic. I needs to spend some time finding out more or working out more. Thanks for magnificent info I was searching for this info for my mission.
LikeLike
Thank you
You are why internet is beautiful
LikeLike