Удаление временных файлов в Temp

151
20 октября 2018, 18:00

Решил написать программу которая будет удалять временные файлы которые старше 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)
        {
        }
    }
Answer 1

Вам нужно проверку переместить в цикл:

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)
            {
            }
        }
    }
}
READ ALSO
Извлечь корень из отрицательного числа

Извлечь корень из отрицательного числа

Как извлечь корень из отрицательного числа? Например, результатом выражения MathPow(-8, 1

195
#DEFINE в C# (Unity)

#DEFINE в C# (Unity)

Прогаю на С# в Unity, нередко используя команды препроцессора #if/#endif, #region/#endregion и прочие

153
Анимация движения элемента [дубликат]

Анимация движения элемента [дубликат]

На данный вопрос уже ответили:

184