Форум: "Начинающим";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];
ВнизУдаление файлов с определенной датой создания.. Найти похожие ветки
← →
Dru095 (2007-11-17 17:39) [0]Удалено модератором
Примечание: СПАМ
← →
trubin © (2007-11-17 17:52) [1]А вопрос то где?
Если я правильно понимаю, то Now / DecodeDate / EncodeDate тебе в руки
← →
Сергей С. (2007-11-17 17:52) [2]И в чем загвоздка ?
← →
Dru095 (2007-11-17 18:02) [3]очень оперативно прям радует:)
я понимаю что данный алгоритм может Вас шокировать :) но прошу отнестись с пониманием. Вот так вот я пытаюсь это делать. Гдето тут есть ошибка, скорее всего при сравнении дат..
Но так как я новичок в этом деле прошу помощи у специалистов.
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;
Прошу помощи в исправлении ошибки.
← →
Сергей С. (2007-11-17 18:10) [4]if FileDateToDateTime(FileGetDate(FHandle)) < (Now - IniFiles.ReadInteger("SETUP", "ACTUAL_BD_DAY", 6)) then DeleteFile(..)
← →
Dru095 (2007-11-17 18:15) [5]Спасибо сейчас попробую.. Обязательно отпишусь...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.059 c