Синхронизация с FTP: как уберечь дату локальных файлов?

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
Oxy
Сообщения: 38
Зарегистрирован: Пн сен 05, 2005 03:46

Синхронизация с FTP: как уберечь дату локальных файлов?

Сообщение Oxy »

Total Commander 8.01 32x (Windows XP).
Нарыл несколько багов и недо-фитч:
1) в режиме FXP, MDTM не юзается никогда (даже когда оба сервера поддерживают MLSD);
2) без MLSD (при использовании LIST), MDTM также недоступен при обычной закачке (хотя доступен при синхронизации--МАРАЗМ!);
3) ручное указание разности временных зон сервера и клиента, тоже учитывается только при синхронизации (а должно учитываться всегда);
4) самое страшное, что при upload-синхронизации, как я понял, нет возможности категорически запретить изменять время локального файла (выполнять обратную синхронизацию времени)!
Или это все-таки как-то отключается?
Последний раз редактировалось Oxy Вт сен 24, 2013 08:57, всего редактировалось 2 раза.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Oxy
Замечание за нарушение правил форума. Про то, для чего предназначен подфорум "Секреты и советы", говорилось многократно.
Информация об используемых версиях TС и ОС для подобных сообщений обязательна. До её получения разбирать конкретику просто не имеет смысла.
Багом принято называть то, что работает не так, как следует из документации программы, а не то, чего в ней не хватает с точки зрения конкретного пользователя.

P.S. Слово "фича" пишется по-русски без буквы "т".

Тема перенесена.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Oxy
Сообщения: 38
Зарегистрирован: Пн сен 05, 2005 03:46

Сообщение Oxy »

Avada
Прошу прощения, таки запостил не туда :oops:
Версию указал, хотя такое поведение характерно для всех (32-х битных) версий, где есть эти фичи.
Касательно баг-не баг--формально Вы тоже правы: прямых заявлений о том, что это должно работать, в документации я не встречал. Так что не баг, но очень грубая недоработка.
Но я, собствено, хотел выяснить: возможно ли как-то запретить изменять дату локальных файлов при аплоаде? Если нет, то хотелось бы узнать, начиная с какой версии появилась эта, ИМХО, глупая фича--обратная синхронизация времени файла?
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Oxy
Не являюсь специалистом по FTP, но по времени появления ответить могу. Сама синхронизация с FTP появилась с версии 4.02 (1999 год), и сразу же с изменением даты/времени локальных файлов.
Предлагаю сравнить соответствующие фрагменты справки до и после версии 7.55.
Справка прежних версий писал(а):После успешной пересылки функция синхронизации устанавливает метку даты/времени локального файла по дате/времени удалённого файла.
Справка новых версий писал(а):Если сервер не поддерживает ни одной из команд MDTM, MFMT, SITE UTIME, то после успешной пересылки функция синхронизации устанавливает метку даты/времени локального файла по дате/времени удалённого файла.
Кроме того, в справке с версии 5.0 (2002 год) в этом подразделе есть приписка:
Новое: Total Commander НЕ изменяет дату/время локального файла, если отмечена опция "игнорировать дату".
(Никакое оно давно уже не новое, так что тут в справке надо убрать это слово. И Гислер не заметил, и мы тоже. Исправим.)

Предыдущий подраздел, где объясняется причина такого поведения, предлагаю прочитать самостоятельно. А ещё лучше — весь этот раздел справки полностью. Там между старыми и новыми версиями ещё кое-какая разница есть.

Про ключ MDTM можно в справке посмотреть. Дополнительно в версии 8.50 добавлены значения у ключа SpecialFlags:
4096: Использовать команду MDTM для указания удалённой метки даты/времени.
8192: Использовать команду MFMT.
12288: Использовать SITE UTIME (сумма 4096 и 8192).
Даже самая богатая фантазия
Не представит себе наши безобразия.
Oxy
Сообщения: 38
Зарегистрирован: Пн сен 05, 2005 03:46

Сообщение Oxy »

Если сервер не поддерживает ни одной из команд MDTM, MFMT, SITE UTIME, то после успешной пересылки функция синхронизации устанавливает метку даты/времени локального файла по дате/времени удалённого файла.
Это не совсем так. Если используется LIST (MLSD не поддерживается сервером или отключен), обратная синхронизация даты будет выполнена в любом случае (даже после успешного вызова MDTM), что приведет к обнулению секунд или всего времени исходного файла.
Ответить