Удалить все файлы из папки с некоторыми исключениями - C#

Узнай цену своей работы

Формулировка задачи:

Привет всем мастерам и новичкам =) У меня возникло вопрос. Нужно сделать в C# форму с кнопкой который будет при нажатии удалять файлы из папки НО исключением. Пример; Сам Чистилка Cleaner.exe Закидываем в папку -> test (еще в нем есть подпапки) И он должен удалять в подпапках лишних файлов. Допустим запустил и чтобы он удалил test/subcategory/test1.php test/subcategory/test2.php test/subcategory/test3.php test/subcategory/test4.php test/subcategory/test5.php test/subcategory/dontdel1.php <- (Не удалять ) test/subcategory/dontdel2.php <- (Не удалять ) test/subcategory/dontdel2.php <- (Не удалять ) test/subcategory/dontdel3.php <- (Не удалять ) test/subcategory/dontdel4.php <- (Не удалять ) test/subcategory/delete1.txt test/subcategory/delete2.txt test/subcategory/delete3.txt test/subcategory/delete4.txt Собственно так,писал подробнее чтобы было понятно всем =) сам не в таких силах писать данную фишку,так как я недавно начал работать с c# Буду благодарен всем кто помог =)

Решение задачи: «Удалить все файлы из папки с некоторыми исключениями»

textual
Листинг программы
using System;
using System.Windows.Forms;
using System.IO;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Удалить файлы в текущей папке?","Удаление", MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
            if (result == System.Windows.Forms.DialogResult.Cancel)
                return;
 
            String AppPath = Application.StartupPath.ToString();
            //String AppPath = "G:\\C#\\Test";
            DeleteFiles(AppPath); //удаляем файлы в текущей папке
 
            //получить список каталогов
            string[] dirs = Directory.GetDirectories(AppPath);
            foreach (string d in dirs)
            {
                DeleteFiles(d);
                ListOfFolders(d);//рекурсия
            }
            MessageBox.Show("Файлы удалены!","Внимание",MessageBoxButtons.OK,MessageBoxIcon.Information);
        }
 
        private void ListOfFolders(string path)
        {        
            //получить список каталогов
            string[] dirs = Directory.GetDirectories(path);            
            foreach (string d in dirs)
            {
                DeleteFiles(d);
            }
        }
 
        private void DeleteFiles(string path) //удаляем файлы
        {
            string[] files = Directory.GetFiles(path);
            foreach (string f in files)
            {
                if (!f.Contains("dontdel"))
                    File.Delete(f);
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5
Похожие ответы