예제 #1
0
        // Восстановить файлы/каталоги с помощью полного типа резервирования
        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()));
        }
예제 #2
0
        // Восстановить файлы/каталоги с помощью дифференциального типа резервирования
        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);
        }