I've been trying to download a ZIP file from azure API which contains folder in it. If I download ZIP using browser, it is fine. The problem is if I try to download with code
Code itself downloaded zip, but when I try to open with Windows Explorer: WindowsZip
When opening it through 7-zip it shows this: 7-zip
For comparison, proper zip downloaded with browser: proper zip
public async Task GetArtifact(string url)
{
Stream content;
var client = CreateClient();
var uri = new Uri(url);
var percentage = 0.0;
HttpResponseMessage response = await client.GetAsync(uri, HttpCompletionOption.ResponseHeadersRead);
var fileSize = response.Content.Headers.ContentLength;
var fileName = response.Content.Headers.ContentDisposition.FileName;
response.Content.Headers.ContentType.MediaType = "application/zip";
if (response.IsSuccessStatusCode)
{
content = await response.Content.ReadAsStreamAsync();
var file = File.OpenWrite(fileName);
var buffer = new byte[32768];
var readByte = 0L;
var isAllRead = false;
do
{
var reader = await content.ReadAsync(buffer, 0, buffer.Length);
if (reader == 0)
{
isAllRead = true;
}
else
{
await file.WriteAsync(buffer, 0, reader);
readByte += reader;
if(fileSize.HasValue)
{
percentage = Math.Round((double)readByte / fileSize.Value * 100, 2);
Console.WriteLine(percentage);
}
}
} while (!isAllRead);
file.Dispose();
}
else
{
throw new WebException(response.ToString());
}
}