diff --git a/Lib/7za.exe b/Lib/7za.exe deleted file mode 100644 index 8a5459808..000000000 Binary files a/Lib/7za.exe and /dev/null differ diff --git a/ShareX.HelpersLib/ZipManager.cs b/ShareX.HelpersLib/ZipManager.cs index a1f97b4d2..767e1ea1c 100644 --- a/ShareX.HelpersLib/ZipManager.cs +++ b/ShareX.HelpersLib/ZipManager.cs @@ -33,14 +33,14 @@ using System.Threading.Tasks; namespace ShareX.HelpersLib { - public class ZipManager + public static class ZipManager { - public void Extract(string archivePath, string destination) + public static void Extract(string archivePath, string destination) { ZipFile.ExtractToDirectory(archivePath, destination); } - public void Extract(string archivePath, string destination, List files) + public static void Extract(string archivePath, string destination, List files) { using (ZipArchive archive = ZipFile.OpenRead(archivePath)) { @@ -60,7 +60,17 @@ namespace ShareX.HelpersLib } } - public void Compress(string archivePath, List files, string workingDirectory = "") + public static void Compress(string source, string archivePath, CompressionLevel compression = CompressionLevel.Optimal) + { + if (File.Exists(archivePath)) + { + File.Delete(archivePath); + } + + ZipFile.CreateFromDirectory(source, archivePath, compression, false); + } + + public static void Compress(string archivePath, List files, string workingDirectory = "", CompressionLevel compression = CompressionLevel.Optimal) { if (File.Exists(archivePath)) { @@ -71,7 +81,7 @@ namespace ShareX.HelpersLib { foreach (string file in files) { - archive.CreateEntryFromFile(Path.Combine(workingDirectory, file), file); + archive.CreateEntryFromFile(Path.Combine(workingDirectory, file), file, compression); } } } diff --git a/ShareX.MediaLib/FFmpegDownloader.cs b/ShareX.MediaLib/FFmpegDownloader.cs index 9cad68bc3..99a3556e9 100644 --- a/ShareX.MediaLib/FFmpegDownloader.cs +++ b/ShareX.MediaLib/FFmpegDownloader.cs @@ -59,9 +59,8 @@ namespace ShareX.MediaLib { try { - ZipManager zipManager = new ZipManager(); List files = new List() { "ffmpeg.exe" }; - zipManager.Extract(archivePath, extractPath, files); + ZipManager.Extract(archivePath, extractPath, files); return true; } catch (Exception e) diff --git a/ShareX.Setup/Helpers.cs b/ShareX.Setup/Helpers.cs index 3c830eda2..1ef50840a 100644 --- a/ShareX.Setup/Helpers.cs +++ b/ShareX.Setup/Helpers.cs @@ -117,16 +117,6 @@ namespace ShareX.Setup } } - public static void Zip(string source, string target) - { - ProcessStart(Path.GetFullPath(Program.SevenZipPath), $"a -tzip \"{target}\" \"{source}\" -r -mx=9"); - } - - public static void Unzip(string source, string extract) - { - ProcessStart(Path.GetFullPath(Program.SevenZipPath), $"e \"{source}\" \"{extract}\" -r"); - } - private static void ProcessStart(string filePath, string arguments) { Console.WriteLine($"Process starting: {filePath} {arguments}"); diff --git a/ShareX.Setup/InnoSetup/ShareX-setup.iss b/ShareX.Setup/InnoSetup/ShareX-setup.iss index 54c7438e3..673081feb 100644 --- a/ShareX.Setup/InnoSetup/ShareX-setup.iss +++ b/ShareX.Setup/InnoSetup/ShareX-setup.iss @@ -56,7 +56,6 @@ Name: "CreateStartupIcon"; Description: "Run ShareX when Windows starts"; GroupD Source: "{#MyAppFilepath}"; DestDir: {app}; Flags: ignoreversion Source: "{#MyAppFilepath}.config"; DestDir: {app}; Flags: ignoreversion Source: "{#MyAppReleaseDirectory}\*.dll"; DestDir: {app}; Flags: ignoreversion -Source: "{#MyAppReleaseDirectory}\7za.exe"; DestDir: {app}; Flags: ignoreversion Source: "{#MyAppRootDirectory}\Licenses\*.txt"; DestDir: {app}\Licenses; Flags: ignoreversion Source: "{#MyAppOutputDirectory}\Recorder-devices-setup.exe"; DestDir: {app}; Flags: ignoreversion Source: "{#MyAppRootDirectory}\ShareX.NativeMessagingHost\bin\Release\ShareX_NativeMessagingHost.exe"; DestDir: {app}; Flags: ignoreversion diff --git a/ShareX.Setup/Program.cs b/ShareX.Setup/Program.cs index e648050a2..f2d5ac89c 100644 --- a/ShareX.Setup/Program.cs +++ b/ShareX.Setup/Program.cs @@ -23,7 +23,9 @@ #endregion License Information (GPL v3) +using ShareX.HelpersLib; using System; +using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; @@ -236,7 +238,6 @@ namespace ShareX.Setup Helpers.CopyFile(Path.Combine(source, "ShareX.exe"), destination); Helpers.CopyFile(Path.Combine(source, "ShareX.exe.config"), destination); - Helpers.CopyFile(Path.Combine(source, "7za.exe"), destination); if (job == SetupJobs.CreateWindowsStoreFolder || job == SetupJobs.CreateWindowsStoreDebugFolder) { @@ -294,13 +295,7 @@ namespace ShareX.Setup //FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(Path.Combine(releaseDir, "ShareX.exe")); //string zipFilename = string.Format("ShareX-{0}.{1}.{2}-portable.zip", versionInfo.ProductMajorPart, versionInfo.ProductMinorPart, versionInfo.ProductBuildPart); string zipPath = Path.Combine(OutputDir, "ShareX-portable.zip"); - - if (File.Exists(zipPath)) - { - File.Delete(zipPath); - } - - Helpers.Zip(Path.GetFullPath(destination) + "\\*", Path.GetFullPath(zipPath)); + ZipManager.Compress(Path.GetFullPath(destination), Path.GetFullPath(zipPath)); Directory.Delete(destination, true); } @@ -315,7 +310,7 @@ namespace ShareX.Setup if (!File.Exists(FFmpeg32bit)) { string filename = Helpers.DownloadFile("http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20171130-83ecdc9-win32-static.zip"); - Helpers.Unzip(filename, "ffmpeg.exe"); + ZipManager.Extract(filename, "", new List() { "ffmpeg.exe" }); File.Move("ffmpeg.exe", FFmpeg32bit); } @@ -327,7 +322,7 @@ namespace ShareX.Setup if (!File.Exists(FFmpeg64bit)) { string filename = Helpers.DownloadFile("http://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20171130-83ecdc9-win64-static.zip"); - Helpers.Unzip(filename, "ffmpeg.exe"); + ZipManager.Extract(filename, "", new List() { "ffmpeg.exe" }); File.Move("ffmpeg.exe", FFmpeg64bit); } diff --git a/ShareX.Setup/ShareX.Setup.csproj b/ShareX.Setup/ShareX.Setup.csproj index 9da3accf6..6a6d40218 100644 --- a/ShareX.Setup/ShareX.Setup.csproj +++ b/ShareX.Setup/ShareX.Setup.csproj @@ -86,6 +86,12 @@ + + + {327750e1-9fb7-4cc3-8aea-9bc42180cad3} + ShareX.HelpersLib + +