а ты пробывал архивы называть по дате ????
Да действительно архивы я создаю с именами в виде даты по маске
base_2007-11-11(00.25).rar но думаю правильнее было бы просто сканировать определенный каталог с архивами и проверять дату создания файла. Если она окажется меньше чем DateToStr(Now - StrToInt(IniFiles.ReadString('SETUP', 'ACTUAL_BD_DAY', '6')
В моем исходнике есть ошибка. Дата переведена в string и осуществляется сравнение двух дат.
if GetFileDate(Path + '\' + sRec.Name) < DateToStr(Now - StrToInt(IniFiles.ReadString('SETUP', 'ACTUAL_BD_DAY', '6')))
При таком сравнении удаляются не те архивы.
в общем запарочка с датами скорее всего..
//Функция определяет дату создания файла
function GetFileDate(FileName: string): string;
var
FHandle: Integer;
begin
FHandle := FileOpen(FileName, 0);
try
Result := DateToStr(FileDateToDateTime(FileGetDate(FHandle)) );
finally
FileClose(FHandle);
end;
end;
//функция удаляет старые архивы
procedure GetAllFiles( Path: string );
var
sRec: TSearchRec;
isFound: boolean;
begin
IniFiles := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Setup.ini'); //указываем на ИНИ файл
isFound := FindFirst( Path + '\*.rar', faAnyFile, sRec ) = 0;
while isFound do
begin
if ( sRec.Name <> '.' ) and ( sRec.Name <> '..' ) then
if ( sRec.Attr and faDirectory ) <> faDirectory then
//проверка архивов на актуальность
// Ошибка сравнения двух дат скорее всего тут..
//
// GetFileDate(Path + '\' + sRec.Name) - дата создания файла
// DateToStr(Now - StrToInt (IniFiles.ReadStrin('SETUP', 'ACTUAL_BD_DAY', '6')) - текущая дата минус кол во дней указанное в ini.
//
//
//
//
//---------------------------------------------------------------
if GetFileDate(Path + '\' + sRec.Name) < DateToStr(Now - StrToInt (IniFiles.ReadString('SETUP', 'ACTUAL_BD_DAY', '6'))) then
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//
//
// В итоге использования такого сравнения удаляются не те архивы.
//
//
//удаление
deletefile(Path + '\' + sRec.Name);
isFound := FindNext( sRec ) = 0;
end;
FindClose( sRec );
end;
Прошу помощи в исправлении ошибки.
|