Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 446

/ вопрос решён /

Доброе время суток уважаемые эксперты, вопрос собственно в чем, есть у меня работающее приложение , которое каджый день получает с видеокамеры наблюдения видео и сохраняет его на компьютер, каждый час создается на диске папочка с именеи типа "02-04-07 02" где первые две цифры это (День, затем Месяц, год и тот час во время которого происходила запись) (те дд-мм-гг чч)
Собственно мне необходимо удалять все файлы и папки, созданны раннее чем за 15 дней до текущей даты и что бы она это делала постоянно и каждый день...

Шуваев Алексей Сергеевич - 869 Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Шуваев Алексей Сергеевич - 869 (статус: Посетитель)
Вопрос отправлен: 2 апреля 2007, 01:36
Состояние вопроса: решён, ответов: 3.

Ответ #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™

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)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:50
Выполнено за 0.03 сек.