|
Вопрос # 446/ вопрос решён / |
|
Доброе время суток уважаемые эксперты, вопрос собственно в чем, есть у меня работающее приложение , которое каджый день получает с видеокамеры наблюдения видео и сохраняет его на компьютер, каждый час создается на диске папочка с именеи типа "02-04-07 02" где первые две цифры это (День, затем Месяц, год и тот час во время которого происходила запись) (те дд-мм-гг чч)
Собственно мне необходимо удалять все файлы и папки, созданны раннее чем за 15 дней до текущей даты и что бы она это делала постоянно и каждый день...
Ответ #1. Отвечает эксперт: min@y™
В старой версии пакета модулей Delphi Works в файле FileWorks.pas есть все необходимые тебе функции? а именно:
function GetFileDateTimeStamp(const Filename: String; var FileDateTimeStamp: TFileDateTimeStamp): Boolean;
function ListFilesRecursive(Path, Mask: string; ShowPath: Boolean): TStringList;
function DeleteDirectory(Directory: String; CanUndo, DeleteNotEmpty, GUI: Boolean): Boolean;
function DeleteFilesRecursive(Path, Mask: string): Boolean;
Могу выслать весь пакет, если не найдёшь в инете.
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 2 апреля 2007, 08:30
Оценка за ответ: 5
Комментарий к оценке: Можно мне выслать на мыло этот пакет??? адрес alex@xtec3.dvgk.ru
|
Ответ #2. Отвечает эксперт: ANBsoft
Проще будет при помощи FindFirst/FindNext найти нужные папки, при помощи них же сделать свою версию DeleteDirectory - это строчек 15, повесить все это на таймер и выполнять раз в полчаса-час.
Можно еще проще. Если сервер работает круглосуточно, то можно просто каждый час запускать на выполнение команду DelTree с нужным именем папки (я делал себе подобную программу для упаковки архивов ISA сервера, нюанс только в том, что ISA сервер сам удаляет свои логи старше недели или двух, а у Вас при остановках сервера видеонаблюдения могут оставаться неудаленные папки, хотя и это можно решить).
 |
Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 2 апреля 2007, 08:58
Оценка за ответ: 5
|
Ответ #3. Отвечает эксперт: Вадим К
Я бы переводил дату напрямую с названия каталога. Так как нет гарантии, что дата создания каталога будет та, что надо (её случайно не обновлят. Хоть как это и странно выглядит, но это возможно. Каталоги банально могли на новый винт закопипастить).
Первым шагом через FindFirst|FindNext ищем каталог очередной. Потом с помощью copy() с названия вытягиваем месяц, год, число. Потом пользуемся функцией EdncodeDateTime (модуль DateUtils)которой в качестве параметров и передаём их. там ещё минуты и секунды надо, но мы туда пишем 0. Результат функции на самом деле - вещественное число. находим разность между ним и функцией Now(). Если больше 15 - кандидат на удаление
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 2 апреля 2007, 10:47
Оценка за ответ: 5
Комментарий к оценке: А можно поподробней пожалуйста???
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 3 апреля 2007, 11:22; участников в обсуждении: 2.
|
min@y™ (статус: Доктор наук), 3 апреля 2007, 08:29 [#1]:
Выслал пакет с модулями. Это старая версия пакета,
новую можно найти тут: http://delphiworks.sourceforge.net/index.htm
Но в этой версии я таких функций не нашёл (может плохо искал).
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Вадим К (статус: Академик), 3 апреля 2007, 11:22 [#2]:
Шуваев Алексей Сергеевич
Что конкретно вам не понятно? пишите - прокоментирую
Галочка "подтверждения прочтения" - вселенское зло.
|
31 января 2011, 19:22: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|