Forum Webscript.Ru

Программирование => Perl => Тема начата: Evgeny от 10 Октября 2002, 19:47:13

Название: Выбор актуальной версии файла
Отправлено: Evgeny от 10 Октября 2002, 19:47:13
Привет всем!
Есть следующая проблема: файлы копируются с фтп-сервера ежедневно и только в том случае, если дата их последней модификации позднее, чем локальные файлы.
Фция $ftp->mdtm($file) не работает (понятия не имею почему), вырезаю дату модификации из $ftp->dir($file) (год правда не выдаётся, но не беда).
Но проблема в том, что при копировании файлов, $ftp->get($file) дата модификации устанавливается равной текущей дате, а не той, что на сервере, поэтому в следующий раз я не могу сравнить на равенство даты модификации обоих файлов.
Можно ли заставить объект ftp делать это (перенос даты модификации файла) принудительно, и если да, то как?
Или нужно потом потом самому атрибуты файла изменять, в соответствие с тем, что я dir-ом считал? А как можно изменить дату последней модификации файла?
Огромное спасибо.
Название: Выбор актуальной версии файла
Отправлено: Serchey от 11 Октября 2002, 00:40:15
Боюсь, что заставить ФТП ставить старую дату не удастся. Зато можно попробовать самому:

utime($readtime,$writetime,$filepath);

При этом ты, разумеется, должен иметь право на запись. Как добыть дату? Используй стандартный модуль Time::Local :

use Time::Local;
$time = timelocal($sec,$min,$hour,$dd,$mm,$yy);

, где
$yy = год-1900;
$mm--;

, а под Виндой не забудь установить $sec,$min,$hour равными нулю: файловая система не учитывает времини суток.
Ну вот и все, собственно. С Богом!
Название: Выбор актуальной версии файла
Отправлено: mike от 11 Октября 2002, 11:33:56
Цитировать
а под Виндой не забудь установить $sec,$min,$hour равными нулю: файловая система не учитывает времини суток.

Неправда ;) Учитывает.
Название: Выбор актуальной версии файла
Отправлено: Evgeny от 11 Октября 2002, 11:49:19
Serchey
Цитировать
...
Ну вот и все, собственно

Спасибо!
Название: Выбор актуальной версии файла
Отправлено: Serchey от 11 Октября 2002, 13:40:49
mike,наверное ты прав - это Юникс, нехароший, не учитывает... :)