Удаление файлов из папки - 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();
}