Удаление файлов из папки - C#
Формулировка задачи:
Уважаемые.
Задача: Стоит вопрос удаления файлов из текущей из определенной папки. Каким образом программно это можно сделать?
Суть проблемы: в папке имеется множество файлов, происходит считывание каждого из файлов, при этом для каждого файла создается дополнительных файл в котором содержится количество прочитанных строк для каждого файла. В итоге исходная папка растет в геометрической прогрессии.
Идея: Удалить все промежуточные файлы(создаваемые) файлы, оставив при этом исходники файлов (исходные файлы), кроме последнего файла (на случай если он не успел прочитаться или возникли проблемы при считывании). Удаление следует произвести в 00:00:01 время, при этом предполагается, что считывание исходных файлов продолжится .
Программный код:
Исходный метод
Листинг программы
- class Program
- {
- static void Main(string[] args)
- {
- string[] files = Directory.GetFiles(Environment.CurrentDirectory, "*.txt");
- foreach (string str in files)
- {
- ReadStringFromFile(str);// в этом методе создается промежуточный файл с расширением (.dat). Исходные файлы в txt формате
- }
- Console.ReadKey(); ;
- }
- }
Решение задачи: «Удаление файлов из папки»
textual
Листинг программы
- static void DeleteOldFiles()
- {
- //Метод будет искать и удалять старые текстовые файлы кроме последнего по дате. Поиск выполняется по маске *_count.txt
- //определим рабочую папку
- DirectoryInfo path = new DirectoryInfo(Directory.GetCurrentDirectory());
- //получим все файлы по маске
- FileInfo[] files = path.GetFiles("*_count.txt");
- FileInfo lastFile = null;
- //сравниваем дату записи каждого файла с первым файлом
- DateTime dt1 = files[0].LastWriteTime;
- foreach (FileInfo fi in files)
- {
- Console.WriteLine(fi + ": " + fi.LastWriteTime);
- }
- foreach (FileInfo fi in files)
- {
- //если она больше то, перезаписываем
- if(fi.CreationTime > dt1)
- {
- dt1 = fi.LastWriteTime;
- lastFile = fi;
- }
- }
- Console.WriteLine(lastFile);
- //и, наконец, удаляем все остальные файлы
- for(int i = 0; i < files.Length; i++)
- {
- if(files[i] != lastFile)
- {
- try
- {
- files[i].Delete();
- Console.WriteLine(files[i] + " - удалён!");
- }
- catch (FieldAccessException ex) { }
- }
- }
- Console.ReadKey();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д