diff --git a/MediaBrowser.ServerApplication/Implementations/DotNetZipClient.cs b/MediaBrowser.ServerApplication/Implementations/DotNetZipClient.cs index 3b174a9b29..4a9afac3f1 100644 --- a/MediaBrowser.ServerApplication/Implementations/DotNetZipClient.cs +++ b/MediaBrowser.ServerApplication/Implementations/DotNetZipClient.cs @@ -1,5 +1,6 @@ -using Ionic.Zip; -using MediaBrowser.Model.IO; +using MediaBrowser.Model.IO; +using SharpCompress.Common; +using SharpCompress.Reader; using System.IO; namespace MediaBrowser.ServerApplication.Implementations @@ -19,10 +20,7 @@ namespace MediaBrowser.ServerApplication.Implementations { using (var fileStream = File.OpenRead(sourceFile)) { - using (var zipFile = ZipFile.Read(fileStream)) - { - zipFile.ExtractAll(targetPath, overwriteExistingFiles ? ExtractExistingFileAction.OverwriteSilently : ExtractExistingFileAction.DoNotOverwrite); - } + ExtractAll(fileStream, targetPath, overwriteExistingFiles); } } @@ -34,9 +32,16 @@ namespace MediaBrowser.ServerApplication.Implementations /// if set to true [overwrite existing files]. public void ExtractAll(Stream source, string targetPath, bool overwriteExistingFiles) { - using (var zipFile = ZipFile.Read(source)) + using (var reader = ReaderFactory.Open(source)) { - zipFile.ExtractAll(targetPath, overwriteExistingFiles ? ExtractExistingFileAction.OverwriteSilently : ExtractExistingFileAction.DoNotOverwrite); + var options = ExtractOptions.ExtractFullPath; + + if (overwriteExistingFiles) + { + options = options | ExtractOptions.Overwrite; + } + + reader.WriteAllToDirectory(targetPath, options); } } } diff --git a/MediaBrowser.ServerApplication/Implementations/FFMpegDownloader.cs b/MediaBrowser.ServerApplication/Implementations/FFMpegDownloader.cs index 861ca7f3b0..becb8d8ab3 100644 --- a/MediaBrowser.ServerApplication/Implementations/FFMpegDownloader.cs +++ b/MediaBrowser.ServerApplication/Implementations/FFMpegDownloader.cs @@ -6,7 +6,6 @@ using MediaBrowser.Model.Logging; using System; using System.IO; using System.Linq; -using System.Reflection; using System.Text; using System.Threading.Tasks; diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj index 043d5c18f1..965e9f8737 100644 --- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj +++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj @@ -168,6 +168,9 @@ False ..\packages\ServiceStack.Text.3.9.62\lib\net35\ServiceStack.Text.dll + + ..\packages\sharpcompress.0.10.1.3\lib\net40\SharpCompress.dll + False ..\packages\SimpleInjector.2.3.5\lib\net40-client\SimpleInjector.dll diff --git a/MediaBrowser.ServerApplication/packages.config b/MediaBrowser.ServerApplication/packages.config index 8c1821ca5f..137483ef1a 100644 --- a/MediaBrowser.ServerApplication/packages.config +++ b/MediaBrowser.ServerApplication/packages.config @@ -11,6 +11,7 @@ + \ No newline at end of file