Здравствуйте, abibok, Вы писали:
A>Есть сетевая папка, в которую разные программы сохраняют свои логи. Размер папки ограничен. Нужно сделать программу, которая будет удалять старые файлы, так чтобы общий размер папки не превышал 80% от лимита.
1) Берешь, запускаешь проводник (Пуск->Все программы->Стандартные->Проводник).
2) Далее идешь в нужную папку.
3) Делаешь отображение списком.
4) Сортируешь по дате изменения.
5) Удаляешь все что более 80%.
Прежде, чем решать проблему: хранить все логи в одной папке и удалять наиболее старые?
А что, если одна программа генерит логи с большой скоростью, то она вытеснит логи всех остальных программ, что, видимо, сделает систему логирования бесполезной для всех программ, кроме этой одной.
Отсюда я бы предложил quota для каждой программы, а там внутри — fixed size queue per each program/component.
Здравствуйте, THESERG, Вы писали:
THE>Прежде, чем решать проблему: хранить все логи в одной папке и удалять наиболее старые? THE>А что, если одна программа генерит логи с большой скоростью, то она вытеснит логи всех остальных программ, что, видимо, сделает систему логирования бесполезной для всех программ, кроме этой одной. THE>Отсюда я бы предложил quota для каждой программы, а там внутри — fixed size queue per each program/component.
Да ну нафик. Пусть все хранят логи за последние Н дней, а будет место на разделе кончаться админы кого надо на уши поставят.
Здравствуйте, abibok, Вы писали:
A>Есть сетевая папка, в которую разные программы сохраняют свои логи. Размер папки ограничен. Нужно сделать программу, которая будет удалять старые файлы, так чтобы общий размер папки не превышал 80% от лимита.
Это алгоритмическая задача. По всей видимости, от кандидата требуется опознать в ней knapsack problem, где вес — размер файла а стоимость — обратна пропорциональна времени его создания (новые файлы важнее старых).