Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

FileTimeToLocalFileTime дает некорректное летнее время зимой

 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
prog_san



Joined: 29 Sep 2007
Posts: 282
Location: Пенза

Post (Separately) Posted: Wed Dec 03, 2008 11:18    Post subject: FileTimeToLocalFileTime дает некорректное летнее время зимой Reply with quote

Проблема следующая:
в ходе эксперементов было выявлено, что на разделах NTFS эта функция дает разницу в час, если файл был записан летом, а просмотр проводится зимой (или наоборот).

Свойства файлов Windows и TotalCommander не учитывают эту особенность и наблюдается интересная вещь:
Ведь если мы создали файл 2.12 в 23.45, то и при просмотре летом информаци об этом файле (переведем время на июнь хотя бы) дата его создания все равно должна быть 2.12 в 23.45, а свойства файлов Windows отображают 03.12 в 00.45 !!!!!

Свойтсва файлов Windows меня мало интересуют Smile, но Гхислеру надо наверное об этом сообщить..

В MSDN написано про подобное поведение и предложена альтернатива - группа функций, приводящая к корректным результатам:

FileTimeToSystemTime
SystemTimeToTzSpecificLocalTime
SystemTimeToFileTime

Еще раз - проявляется только на NTFS разделах
Back to top
View user's profile Send private message
olega



Joined: 24 Jun 2005
Posts: 15

Post (Separately) Posted: Wed Dec 03, 2008 14:29    Post subject: Reply with quote

Настройки->Основные операции->Коррекция времени на NTFS->Игнорировать разницу в 1 ч
Это не то?
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10257
Location: Россия, Саратов

Post (Separately) Posted: Wed Dec 03, 2008 20:21    Post subject: Reply with quote

prog_san
Проблема давно известна, в том числе и Гислеру. О чём в справке Тотала совершенно ясно написано при рассмотрении указанной далее опции.
Про группу функций - это всё замечательно, но что, собственно, конкретно предлагается делать по этому поводу в Тотале? Простыми русскими словами?

olega wrote:
Настройки->Основные операции->Коррекция времени на NTFS->Игнорировать разницу в 1 ч
Это не то?

То, да не совсем. Указанная опция позволяет игнорировать возникшую разницу в один час в функциях сравнения и синхронизации. И всё. Хотя и это очень полезно.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
prog_san



Joined: 29 Sep 2007
Posts: 282
Location: Пенза

Post (Separately) Posted: Thu Dec 04, 2008 00:19    Post subject: Reply with quote

olega wrote:
Настройки->Основные операции->Коррекция времени на NTFS->Игнорировать разницу в 1 ч
Это не то?

Это хорошо, что он учел этот момент при сравнении файлов. Smile Но я не про это..

Avada wrote:

Проблема давно известна, в том числе и Гислеру. О чём в справке Тотала совершенно ясно написано при рассмотрении указанной далее опции.
Про группу функций - это всё замечательно, но что, собственно, конкретно предлагается делать по этому поводу в Тотале? Простыми русскими словами?


А почему же он не использует эту связку для вычисления времен файлов? Ее использование устранит неправильное отображение времени.

Может быть, чтобы избежать расхождения показаний с Windows?
По-моему если файл создан 02.12 в 23.45, то и летом дата его создания должна отображаться как 02.12 в 23.45, а не 03.12 в 00.45.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10257
Location: Россия, Саратов

Post (Separately) Posted: Thu Dec 04, 2008 01:13    Post subject: Reply with quote

prog_san
Я не программист, в тонкостях применения вышеупомянутых функций не разбираюсь и сужу об этом исключительно с позиции честного битого юзера, хотя и с изрядным стажем. Возможно, специалисты меня поправят.
Так вот. Можно считать такое отображение времени правильным или неправильным, но мне не известен НИ ОДИН файл-менеджер, где синхронизация "на лету" изменёного ранее в NTFS времени была бы осуществлена и где такая задача хотя бы серьёзно ставилась. Что предлагается-то? При открытии каждого каталога быстренько пересканировать время файлов и, грубо говоря, для созданных в зимний период час минусовать летом, а для созданных в летний - плюсовать зимой? (На самом деле там всё ещё сложнее, я сознательно упрощаю.) Причём реально ничего не менять, а только отображать таким образом в данной конкретной программе? Кому из разработчиков такие подвиги нужны? Да и в расхождении показаний с Windows счастья будет мало.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
prog_san



Joined: 29 Sep 2007
Posts: 282
Location: Пенза

Post (Separately) Posted: Thu Dec 04, 2008 01:26    Post subject: Reply with quote

Avada wrote:

Так вот. Можно считать такое отображение времени правильным или неправильным, но мне не известен НИ ОДИН файл-менеджер, где синхронизация "на лету" изменёного ранее в NTFS времени была бы осуществлена и где такая задача хотя бы серьёзно ставилась. Что предлагается-то?


Я не про синхронизацию.. Пусть она работает, как работала. Там все и так замечательно. Я про отображение времени в списке файлов на панелях... Если файл был изменен в определенное время - это время и дожно отображаться, безовсяких часовых сдвигов в зависимости от сезона... Не так ли?

Avada wrote:

Кому из разработчиков такие подвиги нужны? Да и в расхождении показаний с Windows счастья будет мало.


Файловая система фиксирует время корректно - проблема только в правильном отображении ее пользователю. И если Windows это выполняет некорректно, это еще не означает того, что TotalCommander должен уподобляться ей.

Повторюсь - я за то, что если файл был создан(изменен, к нему происходил доступ) в конкретное время, это время и ДОЛЖНО отображаться.

Решение же я предлагал выше. Как написано в MSDN. Связка трех функций, вместо использования FileTimeToLocalFileTime
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10257
Location: Россия, Саратов

Post (Separately) Posted: Thu Dec 04, 2008 08:07    Post subject: Reply with quote

prog_san wrote:
Решение же я предлагал выше. Как написано в MSDN. Связка трех функций, вместо использования FileTimeToLocalFileTime

Ссылку можно?
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Thu Dec 04, 2008 12:06    Post subject: Reply with quote

http://msdn.microsoft.com/en-us/library/ms724290.aspx
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10257
Location: Россия, Саратов

Post (Separately) Posted: Thu Dec 04, 2008 19:34    Post subject: Reply with quote

Да, спасибо, посмотрел. Но, как уже было сказано, в силу ограниченой компетентности в данном вопросе конкретика применения всех этих замечательных механизмов для меня не вполне понятна. Равно как и то, почему, если это всё так просто и очевидно, то уже не реализовано кем-то на уровне файл-менеджеров, которых сейчас как собак нерезаных.
Поскольку по основному вопросу я больше ничего дельного сказать не в состоянии, могу лишь порекомендовать выйти на официальный сайт TC и попытаться донести эту идею до Гислера напрямую. Со всеми резонами и отсылками. В чём и желаю всяческих успехов.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
prog_san



Joined: 29 Sep 2007
Posts: 282
Location: Пенза

Post (Separately) Posted: Thu Dec 04, 2008 22:30    Post subject: Reply with quote

Буду пробывать. Правда с английским проблемы Sad
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group