У меня есть несколько больших zip-файлов, которые я загружаю, а затем распаковываю в своей программе.Производительность важна, и одним из направлений, о котором я начал думать, было то, можно ли начать загрузку, а затем начать разархивировать данные по мере их поступления, вместо того, чтобы ждать завершения загрузки и затем начать разархивирование.Это возможно?Из того, что я понимаю в DEFLATE, это должно быть теоретически возможно, верно?
В настоящее время я использую DotNetZip в качестве моей библиотеки zip, но она отказывается работать с потоком, не доступным для поиска.
Кодбыло бы что-то вроде этого:
// HTTP Get the application from the server
var request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
request.Method = "GET";
Directory.CreateDirectory(localPath);
using (var response = (HttpWebResponse)request.GetResponse())
using (Stream input = response.GetResponseStream())
{
// Unzip being some function which will start unzipping and
// return when unzipping is done
return Unzip(input, localPath);
}