// Восстановить файлы/каталоги с помощью полного типа резервирования public static bool RestoreFull(ref Scenario scenario) { string Destination; int version; if (scenario.Zip) { Destination = Path.GetDirectoryName(scenario.Destination) + "\\" + MakeCopy.exclude(scenario.Title); } else { Destination = scenario.Destination + exclude(scenario.Title); } // Определить самую последнюю копию version = GetLastVersion(Destination); // При необходимости переспросить у пользователя, какую версию использовать if (version > 1) { FormVersion FV = new FormVersion(); for (int i = 0; i < version; i++) { FV.comboBox.Items.Add(i + 1); } FV.comboBox.SelectedIndex = version - 1; FV.ShowDialog(); version = FV.comboBox.SelectedIndex + 1; } // Сделать зеркальное восстановление return(RestoreMirror(ref scenario, version.ToString())); }
// Восстановить файлы/каталоги с помощью дифференциального типа резервирования public static bool RestoreDifferential(ref Scenario scenario) { int version = GetLastVersion(scenario.Destination + exclude(scenario.Title)); // При необходимости переспросить у пользователя, какую версию использовать if (version > 1) { FormVersion FV = new FormVersion(); for (int i = 0; i < version; i++) { FV.comboBox.Items.Add(i + 1); } FV.comboBox.SelectedIndex = version - 1; FV.ShowDialog(); version = FV.comboBox.SelectedIndex + 1; } //Восстановить ВСЕ версии, включая указанную bool result = true; for (int recover = 1; recover <= version; recover++) { result &= RestoreIncremental(ref scenario, recover); } return(result); }