Я пытаюсь создать новый ZIP-пакет из кода с одной записью и сохранить ZIP файл в файл. Я пытаюсь добиться этого с помощью класса System.IO.Compression.ZipArchive. Я создаю пакет ZIP со следующим кодом:
using (MemoryStream zipStream = new MemoryStream())
{
    using (ZipArchive zip = new ZipArchive(zipStream, ZipArchiveMode.Create))
    {
        var entry = zip.CreateEntry("test.txt");
        using (StreamWriter sw = new StreamWriter(entry.Open()))
        {
            sw.WriteLine(
                "Etiam eros nunc, hendrerit nec malesuada vitae, pretium at ligula.");
        }
Затем я сохраняю ZIP в файл либо в WinRT:
        var file = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync("test.zip", CreationCollisionOption.ReplaceExisting);
        zipStream.Position = 0;
        using (Stream s = await file.OpenStreamForWriteAsync())
        {
            zipStream.CopyTo(s);
        }
Или в обычном .NET 4.5:
        using (FileStream fs = new FileStream(@"C:\Temp\test.zip", FileMode.Create))
        {
            zipStream.Position = 0;
            zipStream.CopyTo(fs);
        }
Однако я не могу открыть созданные файлы ни в проводнике Windows, ни в WinRAR и т.д. (я проверил, что размер созданного файла соответствует длине zipStream, поэтому сам поток был сохранен в файле правильно. ) 
Я что-то делаю неправильно или есть проблема с классом ZipArchive?