Удалить все файлы из папки с некоторыми исключениями - 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);
}
}
}
}