Archive: SetOverwrite ifnewer


SetOverwrite ifnewer
if filetime's in NTFS are based on UTC+0, and in FAT are based on timzezone and DST settings of the local system, and if NSIS is going to overwrite a file only if newer, does NSIS take into account the potential issue FAT file times introduce?

i.e. does NSIS do something to compensate like gathering the UTC offset from the local system when compiling, and using that when comparing file times with the end users system? and even if it did, do files moved from system to system without NSIS convert their file times to that of the local system and so report them correctly for the system they're run on?

i'm really concerned about this because our software releases can be compiled by multiple team members in multiple time zones, and they and our users could be running NTFS or FAT and in any timezone.


NSIS uses GetFileTime which retrieves the file time using the UTC timezone. From MSDN:

FAT records times on disk in local time. GetFileTime retrieves cached UTC times from FAT.