Удаление файлов из папки - C#

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

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

Уважаемые. Задача: Стоит вопрос удаления файлов из текущей из определенной папки. Каким образом программно это можно сделать? Суть проблемы: в папке имеется множество файлов, происходит считывание каждого из файлов, при этом для каждого файла создается дополнительных файл в котором содержится количество прочитанных строк для каждого файла. В итоге исходная папка растет в геометрической прогрессии. Идея: Удалить все промежуточные файлы(создаваемые) файлы, оставив при этом исходники файлов (исходные файлы), кроме последнего файла (на случай если он не успел прочитаться или возникли проблемы при считывании). Удаление следует произвести в 00:00:01 время, при этом предполагается, что считывание исходных файлов продолжится . Программный код: Исходный метод
Листинг программы
  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. string[] files = Directory.GetFiles(Environment.CurrentDirectory, "*.txt");
  6. foreach (string str in files)
  7. {
  8. ReadStringFromFile(str);// в этом методе создается промежуточный файл с расширением (.dat). Исходные файлы в txt формате
  9. }
  10. Console.ReadKey(); ;
  11. }
  12. }

Решение задачи: «Удаление файлов из папки»

textual
Листинг программы
  1.         static void DeleteOldFiles()
  2.         {
  3.             //Метод будет искать и удалять старые текстовые файлы кроме последнего по дате. Поиск выполняется по маске *_count.txt
  4.             //определим рабочую папку
  5.             DirectoryInfo path = new DirectoryInfo(Directory.GetCurrentDirectory());
  6.             //получим все файлы по маске
  7.             FileInfo[] files = path.GetFiles("*_count.txt");
  8.             FileInfo lastFile = null;
  9.             //сравниваем дату записи каждого файла с первым файлом
  10.             DateTime dt1 = files[0].LastWriteTime;
  11.             foreach (FileInfo fi in files)
  12.             {
  13.                 Console.WriteLine(fi + ": " + fi.LastWriteTime);
  14.             }
  15.             foreach (FileInfo fi in files)
  16.             {
  17.                 //если она больше то, перезаписываем
  18.                 if(fi.CreationTime > dt1)
  19.                 {
  20.                     dt1 = fi.LastWriteTime;
  21.                     lastFile = fi;
  22.                 }
  23.             }
  24.             Console.WriteLine(lastFile);
  25.             //и, наконец, удаляем все остальные файлы
  26.             for(int i = 0; i < files.Length; i++)
  27.             {
  28.                 if(files[i] != lastFile)
  29.                 {
  30.                     try
  31.                     {
  32.                         files[i].Delete();
  33.                         Console.WriteLine(files[i] + " - удалён!");
  34.                     }
  35.                     catch (FieldAccessException ex) { }
  36.                 }
  37.             }
  38.             Console.ReadKey();
  39.         }

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


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

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

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы