This regression was reported by RichardW of Open XML SDK project.
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=39282.
File.Delete ("test.zip");
}
+ [Test]
+ public void ZipWriteEntriesUpdateModeNewEntry()
+ {
+ var stream = new MemoryStream();
+ var zipArchive = new ZipArchive(stream, ZipArchiveMode.Update);
+
+ var newEntry = zipArchive.CreateEntry("testEntry");
+
+ using (var newStream = newEntry.Open())
+ {
+ using (var sw = new StreamWriter(newStream))
+ {
+ sw.Write("TEST");
+ }
+ }
+ }
+
[Test]
public void ZipWriteEntriesUpdateModeNonZeroPosition()
{
if (entry.Archive.Mode == ZipArchiveMode.Update && !entry.wasWritten)
{
// Replace the read-only stream with a writeable memory stream.
- SetWriteable();
+ if (!stream.CanWrite)
+ SetWriteable();
entry.wasWritten = true;
}