From bc32ff31d4c6b03fbed6680cd41322ead62aa329 Mon Sep 17 00:00:00 2001 From: pijemcolu Date: Thu, 19 Oct 2017 12:11:07 +0200 Subject: [PATCH] remove last 3 dependencies --- .../businesslogic/Packager/Installer.cs | 42 +------------- .../Packager/PackageInstance/utill.cs | 58 ++++--------------- .../businesslogic/utilities/Zip.cs | 46 ++------------- src/umbraco.cms/umbraco.cms.csproj | 2 + 4 files changed, 23 insertions(+), 125 deletions(-) diff --git a/src/umbraco.cms/businesslogic/Packager/Installer.cs b/src/umbraco.cms/businesslogic/Packager/Installer.cs index 0499157427..6f1ecbf5c7 100644 --- a/src/umbraco.cms/businesslogic/Packager/Installer.cs +++ b/src/umbraco.cms/businesslogic/Packager/Installer.cs @@ -5,7 +5,6 @@ using System.Globalization; using System.IO; using System.Xml; using System.Linq; -using ICSharpCode.SharpZipLib.Zip; using Umbraco.Core; using Umbraco.Core.Auditing; using Umbraco.Core.IO; @@ -14,6 +13,7 @@ using Umbraco.Core.Packaging; using umbraco.cms.businesslogic.web; using umbraco.BusinessLogic; using System.Diagnostics; +using System.IO.Compression; using umbraco.cms.businesslogic.template; using umbraco.interfaces; using Umbraco.Core.Events; @@ -520,7 +520,7 @@ namespace umbraco.cms.businesslogic.packager /// public void InstallCleanUp(int packageId, string tempDir) { - + if (Directory.Exists(tempDir)) { Directory.Delete(tempDir, true); @@ -751,8 +751,6 @@ namespace umbraco.cms.businesslogic.packager private static string UnPack(string zipName, bool deleteFile) { - // Unzip - //the temp directory will be the package GUID - this keeps it consistent! //the zipName is always the package Guid.umb @@ -765,48 +763,14 @@ namespace umbraco.cms.businesslogic.packager if (Directory.Exists(tempDir)) Directory.Delete(tempDir, true); Directory.CreateDirectory(tempDir); - var s = new ZipInputStream(File.OpenRead(zipName)); - - ZipEntry theEntry; - while ((theEntry = s.GetNextEntry()) != null) - { - string fileName = Path.GetFileName(theEntry.Name); - - if (fileName != String.Empty) - { - FileStream streamWriter = File.Create(tempDir + Path.DirectorySeparatorChar + fileName); - - int size = 2048; - byte[] data = new byte[2048]; - while (true) - { - size = s.Read(data, 0, data.Length); - if (size > 0) - { - streamWriter.Write(data, 0, size); - } - else - { - break; - } - } - - streamWriter.Close(); - - } - } - - // Clean up - s.Close(); + ZipFile.ExtractToDirectory(zipName, tempDir); if (deleteFile) { File.Delete(zipName); } - return tempDir; - } #endregion diff --git a/src/umbraco.cms/businesslogic/Packager/PackageInstance/utill.cs b/src/umbraco.cms/businesslogic/Packager/PackageInstance/utill.cs index 2780bb4423..b1ca6696fe 100644 --- a/src/umbraco.cms/businesslogic/Packager/PackageInstance/utill.cs +++ b/src/umbraco.cms/businesslogic/Packager/PackageInstance/utill.cs @@ -11,13 +11,13 @@ using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; -using System.IO; +using System.IO; +using System.IO.Compression; using System.Xml; using umbraco.cms.businesslogic.template; using umbraco.cms.businesslogic.web; using umbraco.cms.businesslogic.macro; -using ICSharpCode.SharpZipLib.Zip; using Umbraco.Core; using Umbraco.Core.IO; @@ -278,58 +278,24 @@ namespace umbraco.cms.businesslogic.packager /// The save path. public static void ZipPackage(string Path, string savePath) { - string OutPath = savePath; - ArrayList ar = GenerateFileList(Path); // generate file list // find number of chars to remove from orginal file path - int TrimLength = (Directory.GetParent(Path)).ToString().Length; - TrimLength += 1; - - //remove '\' - FileStream ostream; - - byte[] obuffer; - - ZipOutputStream oZipStream = new ZipOutputStream(System.IO.File.Create(OutPath)); - // create zip stream - - - oZipStream.SetLevel(9); - // 9 = maximum compression level - ZipEntry oZipEntry; - - foreach (string Fil in ar) // for each file, generate a zipentry + using (var memoryStream = new MemoryStream()) { - oZipEntry = new ZipEntry(Fil.Remove(0, TrimLength)); - oZipStream.PutNextEntry(oZipEntry); - - - if (!Fil.EndsWith(@"/")) // if a file ends with '/' its a directory + using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create)) { - ostream = File.OpenRead(Fil); - - obuffer = new byte[ostream.Length]; - - // byte buffer - ostream.Read(obuffer, 0, obuffer.Length); - - oZipStream.Write(obuffer, 0, obuffer.Length); - ostream.Close(); + foreach (string file in ar) + { + if (file.EndsWith(@"/") != true) // it's not a directory + { + archive.CreateEntryFromFile(file, System.IO.Path.GetFileName(file)); + } + } } } - oZipStream.Finish(); - oZipStream.Close(); - oZipStream.Dispose(); - oZipStream = null; - - oZipEntry = null; - - - ostream = null; - ar.Clear(); - ar = null; + } private static ArrayList GenerateFileList(string Dir) diff --git a/src/umbraco.cms/businesslogic/utilities/Zip.cs b/src/umbraco.cms/businesslogic/utilities/Zip.cs index 36e9b6fc53..22450aa12f 100644 --- a/src/umbraco.cms/businesslogic/utilities/Zip.cs +++ b/src/umbraco.cms/businesslogic/utilities/Zip.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; -using System.IO; +using System.IO; +using System.IO.Compression; using System.Text; using System.Web; -using ICSharpCode.SharpZipLib.Zip; using umbraco; namespace umbraco.cms.businesslogic.utilities @@ -12,47 +12,13 @@ namespace umbraco.cms.businesslogic.utilities { public static void UnPack(string ZipFilePath, string UnPackDirectory, bool DeleteZipFile) { - // Unzip - string tempDir = UnPackDirectory; - Directory.CreateDirectory(tempDir); - - ZipInputStream s = new ZipInputStream(File.OpenRead(ZipFilePath)); - - ZipEntry theEntry; - while ((theEntry = s.GetNextEntry()) != null) + if (Directory.Exists(UnPackDirectory) != true) { - string directoryName = Path.GetDirectoryName(theEntry.Name); - string fileName = Path.GetFileName(theEntry.Name); - - if (fileName != String.Empty) - { - FileStream streamWriter = File.Create(tempDir + Path.DirectorySeparatorChar + fileName); - - int size = 2048; - byte[] data = new byte[2048]; - while (true) - { - size = s.Read(data, 0, data.Length); - if (size > 0) - { - streamWriter.Write(data, 0, size); - } - else - { - break; - } - } - - streamWriter.Close(); - - } - } - - // Clean up - s.Close(); + Directory.CreateDirectory(UnPackDirectory); + } + if (DeleteZipFile) File.Delete(ZipFilePath); - } } diff --git a/src/umbraco.cms/umbraco.cms.csproj b/src/umbraco.cms/umbraco.cms.csproj index 9defce9dde..792279ad10 100644 --- a/src/umbraco.cms/umbraco.cms.csproj +++ b/src/umbraco.cms/umbraco.cms.csproj @@ -129,6 +129,8 @@ System.Data + + System.Security