Решил написать программу которая будет удалять временные файлы которые старше n-дней. Программа файлы удаляет, но есть одно НО, те файлы которые заняты другим процессом, при нахождении таких файлов программа падает. Добавил try - catch что бы ловилось это исключение, программа перестала падать, но на найденном файле, который используется другим процессом, перебор файлов останавливается и не идет дальше. Как сделать что перебор файлов не останавливался на первом найденном файле который занят другим процессом а перебирал дальше все остальные файлы в папке?
Вот код который написал:
static void Main(string[] args)
{
int delDay = 10;
try
{
string[] files = Directory.GetFiles(@"C:\Windows\Temp");
foreach (string file in files)
{
FileInfo fi = new FileInfo(file);
if (fi.CreationTime < DateTime.Now.AddDays(-delDay))
{
fi.Delete();
}
}
}
catch (Exception ex)
{
}
}
Вам нужно проверку переместить в цикл:
static void Main(string[] args)
{
int delDay = 10;
string[] files = Directory.GetFiles(@"C:\Windows\Temp");
foreach (string file in files)
{
FileInfo fi = new FileInfo(file);
if (fi.CreationTime < DateTime.Now.AddDays(-delDay))
{
try
{
fi.Delete();
}
catch (Exception ex)
{
}
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как извлечь корень из отрицательного числа? Например, результатом выражения MathPow(-8, 1
Прогаю на С# в Unity, нередко используя команды препроцессора #if/#endif, #region/#endregion и прочие