World Save Zipping

- have changed the way the zip file is created. All files are now added to the zip in one pass, rather than as separate files.
This commit is contained in:
Brett Hewitson 2022-05-18 22:12:15 +10:00
parent 1c463ded1d
commit 99c4ed73fc
7 changed files with 121 additions and 184 deletions

View file

@ -2069,14 +2069,17 @@ namespace ServerManagerTool.Lib
var saveFolderInfo = new DirectoryInfo(saveFolder);
// backup the world save file
ZipUtils.ZipFile(backupFile, "", worldFile, comment.ToString());
var files = new Dictionary<string, List<string>>
{
{ "", new List<string> { worldFile } }
};
// backup the player files
var playerFileFilter = $"*{Config.Default.PlayerFileExtension}";
var playerFiles = saveFolderInfo.GetFiles(playerFileFilter, SearchOption.TopDirectoryOnly);
foreach (var file in playerFiles)
{
ZipUtils.ZipFile(backupFile, "", file.FullName);
files[""].Add(file.FullName);
}
// backup the tribe files
@ -2084,7 +2087,7 @@ namespace ServerManagerTool.Lib
var tribeFiles = saveFolderInfo.GetFiles(tribeFileFilter, SearchOption.TopDirectoryOnly);
foreach (var file in tribeFiles)
{
ZipUtils.ZipFile(backupFile, "", file.FullName);
files[""].Add(file.FullName);
}
// backup the tribute tribe files
@ -2092,7 +2095,7 @@ namespace ServerManagerTool.Lib
var tributeTribeFiles = saveFolderInfo.GetFiles(tributeTribeFileFilter, SearchOption.TopDirectoryOnly);
foreach (var file in tributeTribeFiles)
{
ZipUtils.ZipFile(backupFile, "", file.FullName);
files[""].Add(file.FullName);
}
if (Config.Default.AutoBackup_IncludeSaveGamesFolder)
@ -2107,11 +2110,17 @@ namespace ServerManagerTool.Lib
var saveGamesFiles = saveGamesFolderInfo.GetFiles(saveGamesFileFilter, SearchOption.AllDirectories);
foreach (var file in saveGamesFiles)
{
ZipUtils.ZipFile(backupFile, file.DirectoryName.Replace(saveGamesFolder, Config.Default.SaveGamesRelativePath), file.FullName);
var key = file.DirectoryName.Replace(saveGamesFolder, Config.Default.SaveGamesRelativePath);
if (files.ContainsKey(key))
files[key].Add(file.FullName);
else
files.Add(key, new List<string> { file.FullName });
}
}
}
ZipUtils.ZipFiles(backupFile, files, comment.ToString());
LogProfileMessage($"Backed up world files - {saveFolder}");
LogProfileMessage($"Backup file created - {backupFile}");