/// <summary> /// Cette méthode s'exécute lorsque l'utilisateur à cliquer sur le bouton "Supprimer" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_Supprimer_Click(object sender, EventArgs e) { try { DialogResult result = MessageBox.Show("Êtes-vous sûr de vouloir supprimer les fichiers séléctionnés ?\nCette action est irréversible", "SBiiXpress - Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); //Affichage d'un message de confirmation if (result == DialogResult.Yes) { //Si l'utilisateur valide alors on supprime les fichers qu'il a sélectionné foreach (DataGridViewRow d in dGV_Telechargement.Rows) { //Pour chaque lignes du DataGridView if (Convert.ToBoolean(d.Cells[ColumnCheckBox.Name].Value) == true && d.Cells[ColumnType.Name].Value.ToString() == "Fichier") { //Si la ligne actuelle a été cochée par l'utilisateur et si le contenu de la cellule "Type" est égal à "Fichier" Files[d.Index].Delete(); //Alors on supprime } else { if (Convert.ToBoolean(d.Cells[ColumnCheckBox.Name].Value) == true && d.Cells[ColumnType.Name].Value.ToString() == "Dossier") { //Sinon, si la ligne actuelle a été cochée et que le contenu de la cellule "Type" est égal à "Dossier" foreach (DirectoryInfo dir in Directories) { //Alors on parcours les sous-dossiers du dossier de téléchargement, stockés dans dir if (dir.Name.ToString() == d.Cells[ColumnNom.Name].Value.ToString()) { //Si le nom du dossier actuel dans le dossier de téléchargement est égal au nom du fichier contenu dans la ligne du DataGridView dir.Delete(true); //Alors on supprime en désactivant la confirmation } } } } } CleanerXpress.EspaceAp = Gestion_Verification.EspaceLibre(); MessageBox.Show("Le traitement est mainteant terminé, l'opération a permis de libérer " + Gestion_Verification.CalculEspaceLibere() + " Mo", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); Gestion_Verification.Ecriture_Log(); dGV_Telechargement.Rows.Clear(); Telechargements_Load(sender, e); } } catch (Exception err) { //En cas d'erreur, affichage d'un message MessageBox.Show(err.Message); } }
/// <summary> /// Cette méthode gère la suppression automatique des fichiers /// </summary> /// <param name="folder"></param> public static void SuppressAuto(string folder) { int i = 0; double espaceAv, espaceAp = 0; espaceAv = Gestion_Verification.EspaceLibre(); dinfo = new DirectoryInfo(folder); //On récupère l'emplacement du dossier de téléchargement Directories = dinfo.GetDirectories(); Files = dinfo.GetFiles(); foreach (FileInfo file in Files) { //Pour chaque fichiers du dossier de téléchargement if (file.Extension == ".exe" || file.Extension == ".msi") { //Si l'extension du ficher actuel est .exe ou .msi i++; file.Delete(); //Alors on le supprime } if ((Convert.ToInt16(file.LastAccessTime.Month) - Convert.ToInt16(DateTime.Now.Month) >= 2)) { //Si la date de dernier accès du ficher actuel est supérieur à 2 mois i++; file.Delete(); //Alors on le supprime } } if (i != 0) { //Si au moins un fichier a été supprimé, alors on affiche un message avec la taille libérée CleanerXpress.EspaceAp = Gestion_Verification.EspaceLibre(); MessageBox.Show("Le traitement est terminé, " + Gestion_Verification.CalculEspaceLibere() + " Mo ont été libérés", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (i == 0) { //Sinon on affiche un message qui annonce qu'aucun fichier n'a été supprimé espaceAp = espaceAv; MessageBox.Show("Aucun fichier n'a été supprimé car aucun ne correspondait à nos critères de sélection", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } } Gestion_Verification.Ecriture_Log(); }