Powershell ungzip文件没有产生完整的结果

时间:2014-02-20 19:49:44

标签: .net powershell stream gz

我正在尝试编写一个powershell脚本来解压缩gziped文件。这个脚本完美适用于小文件,大文件(十几MB解压缩大小),它产生的结果不完整。

PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.18052
BuildVersion 6.3.9600.16406
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2

没有引发任何错误,它看起来像脚本顺利完成。使用7z解压缩时,文件已完成。知道为什么会这样吗?

$infile = "somefile.gz"
$outfile = ($infile -replace '\.gz$','.xml')

$input = New-Object System.IO.FileStream $inFile, ([IO.FileMode]::Open), ([IO.FileAccess]::Read), ([IO.FileShare]::Read)
$output = New-Object System.IO.FileStream $outFile, ([IO.FileMode]::Create), ([IO.FileAccess]::Write), ([IO.FileShare]::None)
$gzipStream = New-Object System.IO.Compression.GzipStream $input, ([IO.Compression.CompressionMode]::Decompress), true

$buffer = New-Object byte[](0x1000)

while(($read = $gzipstream.Read($buffer, 0, $buffer.Length)) -gt 0){
       $output.Write($buffer, 0, $read)
    }

$gzipStream.Close()
$output.Close()
$input.Close()

0 个答案:

没有答案