Esempio n. 1
0
        //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();
        }
Esempio n. 2
0
        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);
            }
        }