/// <summary> /// Процесс бэкапа /// </summary> /// <param name="args"></param> private void BackupProcess(object args) { var lErrors = new List <string>(); var tParams = (args as TParams); tParams.CheckConflicts(); var i = 0; foreach (var f in tParams.lFiles) { //пометка о начале операции SetCheckBox(i, null); var aimPath = tParams.mainFolder; //Изменение целевой директории при дубле if (tParams.Conflicts[i]) { aimPath = tParams.mainFolder + "\\" + f.Name; Directory.CreateDirectory(aimPath); } //операция if (SaveOpen.DoCopy(f.PathString, aimPath)) { //пометка о завершении операции с успехом SetCheckBox(i, true); } i++; } //Архивирования if (SaveOpen.settings.Options.DoZip) { SetCheckBox(i, null); ZipFile.CreateFromDirectory(tParams.mainFolder, tParams.mainFolder + ".zip"); SetCheckBox(i, true); i++; //Удаление не архивированной копии if (SaveOpen.settings.Options.DeleteAfterZip) { SetCheckBox(i, null); Directory.Delete(tParams.mainFolder, true); SetCheckBox(i, true); i++; } } //Завершение SaveOpen.settings.Options.LastBackup = DateTime.Now;//пометка о выполненнии Бэкапа this.Dispatcher.Invoke(DispatcherPriority.ContextIdle, new Action(delegate() { State = 0; //Закрытие программы if (SaveOpen.settings.Options.CloseAfterBackup && lErrors.Count == 0) { this.Owner.Close(); } else { MessageBox.Show("Process finished", "Finish", MessageBoxButton.OK, MessageBoxImage.Information); } })); }
private void miGetFullSize_Click(object sender, RoutedEventArgs e) { long fullSize = 0; foreach (var f in lFiles) { fullSize += f.GetSize(); } MessageBox.Show(SaveOpen.SizeToString(fullSize, false), "Total size", MessageBoxButton.OK, MessageBoxImage.Information); }
/// <summary> /// Загрузка настроек /// </summary> private void LoadSettings() { var settings = SaveOpen.LoadSettings(); lFiles = settings.lFiles; tbBackupDirectory.Text = settings.directoryForBackup; miDoZip.IsChecked = settings.Options.DoZip; miCloseAfterBackup.IsChecked = settings.Options.CloseAfterBackup; SetSettings(settings); Refresh(); }
/// <summary> /// Сохранение настроек /// </summary> private bool SaveSettings() { FillSettings(); return(SaveOpen.SaveSettings()); }
/// <summary> /// Самоопределение размера /// </summary> /// <returns></returns> public long GetSize() { Size = SaveOpen.GetSize(PathString); return(Size); }