diff options
| -rw-r--r-- | MediaBrowser.Common.Implementations/Archiving/ZipClient.cs | 16 | ||||
| -rw-r--r-- | MediaBrowser.Model/IO/IZipClient.cs | 8 | ||||
| -rw-r--r-- | MediaBrowser.Providers/TV/TvdbSeriesProvider.cs | 2 |
3 files changed, 25 insertions, 1 deletions
diff --git a/MediaBrowser.Common.Implementations/Archiving/ZipClient.cs b/MediaBrowser.Common.Implementations/Archiving/ZipClient.cs index 23d40cf67..3d759ca54 100644 --- a/MediaBrowser.Common.Implementations/Archiving/ZipClient.cs +++ b/MediaBrowser.Common.Implementations/Archiving/ZipClient.cs @@ -4,6 +4,7 @@ using SharpCompress.Archive.SevenZip; using SharpCompress.Archive.Tar; using SharpCompress.Common; using SharpCompress.Reader; +using SharpCompress.Reader.Zip; using System.IO; namespace MediaBrowser.Common.Implementations.Archiving @@ -48,6 +49,21 @@ namespace MediaBrowser.Common.Implementations.Archiving } } + public void ExtractAllFromZip(Stream source, string targetPath, bool overwriteExistingFiles) + { + using (var reader = ZipReader.Open(source)) + { + var options = ExtractOptions.ExtractFullPath; + + if (overwriteExistingFiles) + { + options = options | ExtractOptions.Overwrite; + } + + reader.WriteAllToDirectory(targetPath, options); + } + } + /// <summary> /// Extracts all from7z. /// </summary> diff --git a/MediaBrowser.Model/IO/IZipClient.cs b/MediaBrowser.Model/IO/IZipClient.cs index ba0725da5..ac57d58a6 100644 --- a/MediaBrowser.Model/IO/IZipClient.cs +++ b/MediaBrowser.Model/IO/IZipClient.cs @@ -24,6 +24,14 @@ namespace MediaBrowser.Model.IO void ExtractAll(Stream source, string targetPath, bool overwriteExistingFiles); /// <summary> + /// Extracts all from zip. + /// </summary> + /// <param name="source">The source.</param> + /// <param name="targetPath">The target path.</param> + /// <param name="overwriteExistingFiles">if set to <c>true</c> [overwrite existing files].</param> + void ExtractAllFromZip(Stream source, string targetPath, bool overwriteExistingFiles); + + /// <summary> /// Extracts all from7z. /// </summary> /// <param name="sourceFile">The source file.</param> diff --git a/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs b/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs index 69f1123d0..20dc6c485 100644 --- a/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs +++ b/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs @@ -210,7 +210,7 @@ namespace MediaBrowser.Providers.TV await zipStream.CopyToAsync(ms).ConfigureAwait(false); ms.Position = 0; - _zipClient.ExtractAll(ms, seriesDataPath, true); + _zipClient.ExtractAllFromZip(ms, seriesDataPath, true); } } |
