diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-23 12:48:35 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-23 12:48:35 -0400 |
| commit | c905051b163946ab70bae94468d071fdb5925fae (patch) | |
| tree | 83522fa1c88f1404c73e5251781eabb010fd243a | |
| parent | baa5be2157f70095be319bcfe4a0f5a1cbdd5d1c (diff) | |
switch to sharp compress to add 7z support
4 files changed, 17 insertions, 9 deletions
diff --git a/MediaBrowser.ServerApplication/Implementations/DotNetZipClient.cs b/MediaBrowser.ServerApplication/Implementations/DotNetZipClient.cs index 3b174a9b2..4a9afac3f 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 /// <param name="overwriteExistingFiles">if set to <c>true</c> [overwrite existing files].</param> 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 861ca7f3b..becb8d8ab 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 043d5c18f..965e9f873 100644 --- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj +++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj @@ -168,6 +168,9 @@ <SpecificVersion>False</SpecificVersion> <HintPath>..\packages\ServiceStack.Text.3.9.62\lib\net35\ServiceStack.Text.dll</HintPath> </Reference> + <Reference Include="SharpCompress"> + <HintPath>..\packages\sharpcompress.0.10.1.3\lib\net40\SharpCompress.dll</HintPath> + </Reference> <Reference Include="SimpleInjector, Version=2.3.5.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\packages\SimpleInjector.2.3.5\lib\net40-client\SimpleInjector.dll</HintPath> diff --git a/MediaBrowser.ServerApplication/packages.config b/MediaBrowser.ServerApplication/packages.config index 8c1821ca5..137483ef1 100644 --- a/MediaBrowser.ServerApplication/packages.config +++ b/MediaBrowser.ServerApplication/packages.config @@ -11,6 +11,7 @@ <package id="ServiceStack.OrmLite.SqlServer" version="3.9.44" targetFramework="net45" /> <package id="ServiceStack.Redis" version="3.9.44" targetFramework="net45" /> <package id="ServiceStack.Text" version="3.9.62" targetFramework="net45" /> + <package id="sharpcompress" version="0.10.1.3" targetFramework="net45" /> <package id="SimpleInjector" version="2.3.5" targetFramework="net45" /> <package id="System.Data.SQLite.x86" version="1.0.88.0" targetFramework="net45" /> </packages>
\ No newline at end of file |
