Я пишу приложение для передачи файлов, и мне нужно скопировать файлы с NTFS на диски FAT. Чтение с http://support.microsoft.com/kb/127830, я понимаю, что такое время, как # 11/29/2004 7:31:06 PM, 250ms # следует перевести на # 11/29/2004 7:31:08 PM, 0ms # при копировании в FAT жесткий диск. Однако на самом деле происходит то, что время файла усекается до # 11/29/2004 7:31:06 PM, 0ms #.Преобразование временных меток NTFS в временные метки FAT
Я что-то упустил? Когда время усекается, а когда оно округляется?
Большое спасибо! CFP
Edit: Добавить пример кода:
IO.File.GetLastWriteTimeUtc(Source)
Мои NTFS-> Функция FAT является:
Function NTFSToFATTime(ByVal NTFSTime As Date) As Date
Return (New Date(NTFSTime.Year, NTFSTime.Month, NTFSTime.Day, NTFSTime.Hour, NTFSTime.Minute, NTFSTime.Second).AddSeconds(If(NTFSTime.Millisecond = 0, NTFSTime.Second Mod 2, 2 - (NTFSTime.Second Mod 2))))
End Function
В связанных статьях говорится: «Временные метки файлов на дисках FAT округлены до ближайших двух секунд (четное число), когда файл записан на диск», что, по-видимому, является именно тем поведением, которое вы наблюдаете? –
Можете ли вы показать код? – t0mm13b
Фактически, часть, указывающая, что «Временные метки файлов на дисках FAT округлены до ближайших двух секунд (четное число), когда файл записывается на диск» означает, что файлы записываются непосредственно на диск, а не копируются с Привод NTFS к FAT. Он также говорит: «Когда файлы скопированы с дисков NTFS на диски FAT, должно произойти округление штампа времени файла, а штамп времени файла округляется до следующего даже второго». –