|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Сравнение времени локального Zip архива с Zip архивом на FTP
Доброго времени суток
Нужна помощь!!! Нужно сравнить время локального Zip архива с Zip архивом на FTP и скачать его если дата и время локального Zip архива различаются на 5 минут с Zip архивом на FTP. Как сделать сравнение времени до 5 мин. Сделал до 1 часа: Код:
Procedure TFormFtp.CheckAndDownloadNewZip (Sender: TObject); const Hour = 3600000/MSecsPerDay; var k,n, n_zip, i:integer; ListZips:TStrings; size_zip_file:int64; FZipRemoteDate,FZipLocalDate:TdateTime; size_zip:array of Int64; FZipName: string; begin n:=0; k:=0; Sum_size_zip:=0; ListZips:=TStringList.Create; ButtonStart.Enabled:=false; ButtonStop.Enabled:=True; StopFlag := false; i:=0; down_size:=0; ListZips:=FindFileInFolder(FormMain.LabelCreat.Caption+'\'+'SUB_'+FormMain.LabelNumber.Caption+'\'); MemoFind.Clear; MemoNotFound.Clear; SetLength(size_zip,ListZips.Count+1); while ((StopFlag=false) AND (k<ListZips.Count)) do // for k:=0 to ListZips.Count-1 do begin Panel1.Caption:='Идет проверка обновления для файла '+ListZips.Strings[k]; Application.ProcessMessages; CheckDateZipFile(ListZips.Strings[k],size_zip_file,FZipRemoteDate); FZipRemoteDate:=FZipRemoteDate+7*Hour; // +7 часов т.к. фтп в GMT FZipLocalDate:=FileDateToDateTime( FileAge( FormMain.LabelCreat.Caption+'\'+'SUB_'+ FormMain.LabelNumber.Caption+'\'+ ListZips.Strings[k])); if size_zip_file>0 then if MinutesBetween(FZipRemoteDate,FZipLocalDate)>5 then begin MemoFind.Lines.Add(ListZips.Strings[k]); size_zip[n]:=size_zip_file; Sum_size_zip:=Sum_size_zip+size_zip_file; Label3.Caption:='Необходимо будет скачать = '+MakeMemSize(Sum_size_zip); n:=n+1; Application.ProcessMessages; end else begin MemoNotFound.Lines.Add(ListZips.Strings[k]); Application.ProcessMessages; end; k:=k+1; end; Последний раз редактировалось Admin, 28.05.2013 в 21:23. |
#2
|
||||
|
||||
Если правильно понял, то определение возраста файла на FTP должно происходить так
Код:
Const Hour = 3600000/MSecsPerDay; Minute = 60000/MSecsPerDay; Second = 1000/MSecsPerDay; ... FZipRemoteDate:=FZipRemoteDate + 7*Hour + Minute; // +7 часов т.к. фтп в GMT ... З.Ы. Это был плохой совет... Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 28.05.2013 в 21:55. |
#3
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#4
|
||||
|
||||
Цитата:
Странно, но вообще этот код - рабочий, сравнение возраста 2х локальных файлов (проверил вырезку про MinutesBetween) идёт на ура, и правда наверное что-то с серверным временем, надо бы это проверить. Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
|||
|
|||
Спасибо всем проблема решена!!
|