//Lorsque la sauvegarde est terminée private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { backgroundWorker.Dispose(); backgroundWorker.CancelAsync(); mainform.setLbEtatDerniereSauvegarde(); DateTime lastSave = Serialization.deserializeLastSaveDate(false); Configuration c = new Configuration(); //reinitialisation de la date de la prochaine sauvegarde DateTime d = s.initNextSave(); Log.write("- " + DateTime.Now.ToShortDateString() + " à " + DateTime.Now.ToShortTimeString() + " Réinitialisation de la date de la prochaine sauvegarde, nouvelle valeur: " + d.ToString()); this.mainform.setLbDateProchaineSauvegarde(d); //suppression des anciennes sauvegardes if (c.getNbSaves() != 0) { s.checkSaveNumber(); } //Création et envoi du mail de fin de sauvegarde Mailer m = new Mailer(this.s); m.sendNotificationSauvegarde(); s.setNbFichiersCopies(0); if (c.getAutoShutDown() == '1') { //Arret de l'ordinateur System.Diagnostics.ProcessStartInfo restart = new System.Diagnostics.ProcessStartInfo("shutdown.exe", "-s -t 60"); System.Diagnostics.Process.Start(restart); } else { MessageBox.Show("Sauvegarde terminée."); Log.write("- " + DateTime.Now.ToShortDateString() + " à " + DateTime.Now.ToShortTimeString() + " Sauvegarde terminée"); Application.Restart(); } Close(); }
public void execute(BackgroundWorker bgw) { //Envoi de mail en début de sauvegarde try { Mailer m = new Mailer(this); m.sendNotificationDebut(); Log.notifieDebutSauvegarde(); } catch(Exception e) { Log.write("- " + DateTime.Now.ToShortDateString() + DateTime.Now.ToShortTimeString() + ": " + e.Message + "/n"); } //Mise à de la date de dernière sauvegarde Serialization.serializeLastSaveDate(DateTime.Now); //chargement de la liste des fichiers à sauvegarder ArrayList pathesList = (ArrayList)Serialization.deserializeXML("folders.xml"); string path = this.saveRoot + @".tmp"; //création du dossier de sauvegarde de l'utilisateur try { if (Directory.Exists(path)) { Directory.Delete(path, true); } if (Directory.Exists(this.saveRoot)) { Directory.Delete(this.saveRoot, true); } Directory.CreateDirectory(path); } catch (UnauthorizedAccessException uae) { MessageBox.Show(uae.Message + Environment.NewLine + "veuillez le supprimer manuellement"); } //construction du chemin de sauvegarde des fichiers et copie des fichiers foreach (string s in pathesList) { try { if (!this.bgwk.CancellationPending) { string savedDirPath = ""; savedDirPath += path + @"\" + this.toSavedFilePathFormat(s); if (!Directory.Exists(savedDirPath)) { Directory.CreateDirectory(savedDirPath); } this.copyFiles(s, this.bgwk); } else { break; } } catch (Exception ex) { MessageBox.Show(ex.Message); } } try { Log.notifieFinSauvegarde(); Directory.Move(this.saveRoot + @".tmp", this.saveRoot); } catch (Exception e) { MessageBox.Show(e.Message); Log.write(e.Message); } }