diff --git a/ShareX.HelpersLib/ZipManager.cs b/ShareX.HelpersLib/ZipManager.cs index 0b328805a..8e8d6e082 100644 --- a/ShareX.HelpersLib/ZipManager.cs +++ b/ShareX.HelpersLib/ZipManager.cs @@ -97,7 +97,20 @@ public static void Compress(string source, string archivePath, CompressionLevel ZipFile.CreateFromDirectory(source, archivePath, compression, false); } - public static void Compress(string archivePath, List files, string workingDirectory = "", CompressionLevel compression = CompressionLevel.Optimal) + public static void Compress(string archivePath, List files, CompressionLevel compression = CompressionLevel.Optimal) + { + Dictionary entries = new Dictionary(); + + foreach (string file in files) + { + string fileName = Path.GetFileName(file); + entries.Add(file, fileName); + } + + Compress(archivePath, entries, compression); + } + + public static void Compress(string archivePath, Dictionary files, CompressionLevel compression = CompressionLevel.Optimal) { if (File.Exists(archivePath)) { @@ -106,13 +119,14 @@ public static void Compress(string archivePath, List files, string worki using (ZipArchive archive = ZipFile.Open(archivePath, ZipArchiveMode.Update)) { - foreach (string file in files) + foreach (KeyValuePair file in files) { - string filePath = Path.Combine(workingDirectory, file); + string sourceFilePath = file.Key; - if (File.Exists(filePath)) + if (File.Exists(sourceFilePath)) { - archive.CreateEntryFromFile(filePath, file, compression); + string entryName = file.Value; + archive.CreateEntryFromFile(sourceFilePath, entryName, compression); } } } diff --git a/ShareX/SettingManager.cs b/ShareX/SettingManager.cs index 97fbc38ca..f567306e8 100644 --- a/ShareX/SettingManager.cs +++ b/ShareX/SettingManager.cs @@ -352,17 +352,17 @@ public static bool Export(string archivePath, bool settings, bool history) if (settings) { - files.Add(ApplicationConfigFilename); - files.Add(HotkeysConfigFilename); - files.Add(UploadersConfigFilename); + files.Add(ApplicationConfigFilePath); + files.Add(HotkeysConfigFilePath); + files.Add(UploadersConfigFilePath); } if (history) { - files.Add(Program.HistoryFilename); + files.Add(Program.HistoryFilePath); } - ZipManager.Compress(archivePath, files, Program.PersonalFolder); + ZipManager.Compress(archivePath, files); return true; } catch (Exception e)