Bug 43022 - ZipArchive.Entries is not updated when ZipArchiveEntry is deleted
Summary: ZipArchive.Entries is not updated when ZipArchiveEntry is deleted
Alias: None
Product: Class Libraries
Classification: Mono
Component: SharpZipLib (show other bugs)
Version: 4.7.X
Hardware: Other Other
: --- normal
Target Milestone: Untriaged
Assignee: João Matos
Depends on:
Reported: 2016-08-03 07:09 UTC by Tim Jones
Modified: 2016-08-04 17:36 UTC (History)
2 users (show)

See Also:
Is this bug a regression?: ---
Last known good build:


Description Tim Jones 2016-08-03 07:09:44 UTC
Steps to repro:

1. Open a ZipArchive, which contains an existing file - for example, test.txt.
2. Get the ZipArchiveEntry for this file - i.e. zipArchive.GetEntry("test.txt").
3. Delete the ZipArchiveEntry - zipArchiveEntry.Delete().

Expected outcome:
zipArchive.Entries should no longer contain the deleted ZipArchiveEntry. This is what happens in the .NET Framework implementation.

Actual outcome:
zipArchive.Entries does contain the deleted ZipArchiveEntry.

From reading the source code, it looks like ZipArchiveEntry.Delete() calls Archive.zipFile.RemoveEntry(entry) - which removes the entry from SharpCompress.Archive.Zip.ZipArchive's Entries collection, but not System.IO.Compression.ZipArchive.Entries.
Comment 1 João Matos 2016-08-04 12:32:08 UTC
Pushed PR: https://github.com/mono/mono/pull/3357

Note You need to log in before you can comment on or make changes to this bug.