fix save folder filter in Save Backup

This commit is contained in:
Jesse Plamondon-Willard 2020-02-01 15:33:40 -05:00
parent aeb72586fd
commit 56b1b8d4d2
No known key found for this signature in database
GPG Key ID: CF8B1456B3E29F49
1 changed files with 3 additions and 3 deletions

View File

@ -71,7 +71,7 @@ namespace StardewModdingAPI.Mods.SaveBackup
// copy saves to fallback directory (ignore non-save files/folders) // copy saves to fallback directory (ignore non-save files/folders)
this.Monitor.Log($"Backing up saves to {fallbackDir.FullName}...", LogLevel.Trace); this.Monitor.Log($"Backing up saves to {fallbackDir.FullName}...", LogLevel.Trace);
DirectoryInfo savesDir = new DirectoryInfo(Constants.SavesPath); DirectoryInfo savesDir = new DirectoryInfo(Constants.SavesPath);
this.RecursiveCopy(savesDir, fallbackDir, copyRoot: false, entry => this.MatchSaveFolders(savesDir, entry)); this.RecursiveCopy(savesDir, fallbackDir, entry => this.MatchSaveFolders(savesDir, entry), copyRoot: false);
// compress backup if possible // compress backup if possible
this.Monitor.Log("Compressing backup if possible...", LogLevel.Trace); this.Monitor.Log("Compressing backup if possible...", LogLevel.Trace);
@ -199,7 +199,7 @@ namespace StardewModdingAPI.Mods.SaveBackup
/// <param name="copyRoot">Whether to copy the root folder itself, or <c>false</c> to only copy its contents.</param> /// <param name="copyRoot">Whether to copy the root folder itself, or <c>false</c> to only copy its contents.</param>
/// <param name="filter">A filter which matches the files or directories to copy, or <c>null</c> to copy everything.</param> /// <param name="filter">A filter which matches the files or directories to copy, or <c>null</c> to copy everything.</param>
/// <remarks>Derived from the SMAPI installer code.</remarks> /// <remarks>Derived from the SMAPI installer code.</remarks>
private void RecursiveCopy(FileSystemInfo source, DirectoryInfo targetFolder, bool copyRoot = true, Func<FileSystemInfo, bool> filter = null) private void RecursiveCopy(FileSystemInfo source, DirectoryInfo targetFolder, Func<FileSystemInfo, bool> filter, bool copyRoot = true)
{ {
if (!targetFolder.Exists) if (!targetFolder.Exists)
targetFolder.Create(); targetFolder.Create();
@ -216,7 +216,7 @@ namespace StardewModdingAPI.Mods.SaveBackup
case DirectoryInfo sourceDir: case DirectoryInfo sourceDir:
DirectoryInfo targetSubfolder = copyRoot ? new DirectoryInfo(Path.Combine(targetFolder.FullName, sourceDir.Name)) : targetFolder; DirectoryInfo targetSubfolder = copyRoot ? new DirectoryInfo(Path.Combine(targetFolder.FullName, sourceDir.Name)) : targetFolder;
foreach (var entry in sourceDir.EnumerateFileSystemInfos()) foreach (var entry in sourceDir.EnumerateFileSystemInfos())
this.RecursiveCopy(entry, targetSubfolder); this.RecursiveCopy(entry, targetSubfolder, filter);
break; break;
default: default: