microsoft / RecursiveExtractor

RecursiveExtractor is a .NET Standard 2.0 archive extraction Library, and Command Line Tool which can process 7zip, ar, bzip2, deb, gzip, iso, rar, tar, vhd, vhdx, vmdk, wim, xzip, and zip archives and any nested combination of the supported formats.
MIT License
194 stars 29 forks source link

Improve Dispose Behavior on ExtractToDirectory(filename) API #150

Closed gfs closed 7 months ago

gfs commented 8 months ago

Fix #149.

This API was relying on the FileEntry finalizer to dispose the stream, but the timing of disposal is unreliable and users expect locks to be released after the method returns. This changes the filename based ExtractToDirectory API to create a Stream in the method context and dispose it when leaving scope via using statement, instead of relying on the FileEntry finalizer.

Also updates dependencies.