public static void DeleteSave(UserDataStateRelay toDelete) { try { Directory.Delete(toDelete.Location, true); if (toDelete.Location == ActiveSave?.Location) { Directory.CreateDirectory(toDelete.Location); } if (AllBackups.Contains(toDelete)) { AllBackups.Remove(toDelete); } else if (ActiveSave == toDelete) { ActiveSave = null; } } catch (IOException ioe) { Wood.WriteLine($"ERROR DELETING SAVE {toDelete.MyName}:"); Wood.Indent(); Wood.WriteLine(ioe); Wood.Unindent(); } }
/// <summary> /// Restores active savefile from a given backup; aborts if active savefile is not empty. /// </summary> /// <param name="backup"><see cref="UserDataStateRelay"/> to be cloned.</param> /// <returns><c>true</c> if the operation was successful; <c>false</c> otherwise.</returns> public static bool RestoreActiveSaveFromBackup(UserDataStateRelay backup) { if (backup.Location == ActiveSave?.Location) { Wood.WriteLine("Can not copy active save into itself!"); return(false); } if (ActiveSave?.CurrState != UserDataStateRelay.UDSRState.Empty) { Wood.WriteLine("Active save not empty, will not overwrite!"); return(false); } ; try { Wood.WriteLine("Restoring save from backup..."); ActiveSave = backup.CloneTo(UserDataFolder); Wood.WriteLine("Backup restore successful."); return(true); } catch (NullReferenceException ne) { Wood.WriteLine("ERROR RESTORING A SAVEFILE BACKUP:"); Wood.WriteLine(ne, 1); } return(true); }
public static void StashActiveSave() { if (!BlepOut.IsMyPathCorrect) { return; } UserDataStateRelay udsr = ActiveSave ?? new UserDataStateRelay(UserDataFolder); AllBackups.Add(udsr.CloneTo(PathForNewBackup)); }
public static bool RestoreActiveSaveFromBackup(UserDataStateRelay backup) { if (backup.Location == ActiveSave?.Location) { return(false); } if (ActiveSave?.CurrState != UserDataStateRelay.StateState.Empty) { return(false); } ; return(false); }
public static void LoadBackupList() { bool flag = BlepOut.IsMyPathCorrect; if (!Directory.Exists(BackupFolderPath)) { Directory.CreateDirectory(BackupFolderPath); } if (flag) { ActiveSave = new UserDataStateRelay(UserDataFolder) { CreationTime = DateTime.Now }; } AllBackups.Clear(); foreach (DirectoryInfo dir in new DirectoryInfo(BackupFolderPath).GetDirectories()) { AllBackups.Add(new UserDataStateRelay(dir) { }); } }