Я пытаюсь запрограммировать скрипт, который получает zip-файл из Интернета и извлекает из него один файл с помощью потоков.Декомпрессированный файл слишком большой
Проблема в том, что извлеченный файл слишком большой.
- Сжатый Размер: 30 кб
- Оригинал Размер: 373 кб
- расжатая Размер: 825kb
Я был бы рад, если кто-то может помочь мне найти то, что случилось с моим кодом. Я очень хочу получить ответ, используя потоки.
файл, который загружается (на сегодняшний день) является: https://bitbucket.org/rude/love/downloads/love-0.10.2-win64.zip
Мой код:
### Download current LOVE framework executable ###
# By default PowerShell supports only SSL3 and TLS1.0, add TLS1.1 and TLS1.2 support.
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12'
# Get current version of the LOVE framework
$request = Invoke-WebRequest "https://love2d.org/"
$downloadUri = (Select-String -InputObject $request.Content -Pattern "https://bitbucket\.org/rude/love/downloads/love-.*-win64\.zip").Matches[0].Value
$loveBinaryStream = (Invoke-WebRequest $downloadUri).RawContentStream
# Extract love.exe
Add-Type -AssemblyName System.IO.Compression
$zipArchive = New-Object System.IO.Compression.ZipArchive($loveBinaryStream)
$zipEntry = $zipArchive.Entries | ? { $_.Name -eq "love.exe" }
$stream = $zipEntry.Open()
$sr = New-Object System.IO.StreamReader($stream)
$sw = New-Object System.IO.StreamWriter("love.exe")
$sw.Write($sr.ReadToEnd())
$sw.Close()
$sr.Close()
$stream.Close()
Вы просматривали содержимое выходного файла? Я бы попробовал использовать Format-Hex, чтобы узнать, что находится на выходе. –