вместо
инство файлов, которые я прочитал, получают правильное время при использовании следующего метода для преобразования:
// works great most of the time
private static DateTime convertToDateTime(System.Runtime.InteropServices.ComTypes.FILETIME time)
{
long highBits = time.dwHighDateTime;
highBits = highBits << 32;
return DateTime.FromFileTimeUtc(highBits + time.dwLowDateTime);
}
Здесь у меня есть пример в Visual Studio, чтобы показать, как этот метод иногда не работает, например, я покажу фактический файл на моем компьютере и отладку. Итак, файл, который находится в моей отладке:
«A: \ Users \ Tono \ Documents \ Visual Studio 2010 \ Projects \ WpfApplication4 \ WpfApplication4 \ obj \ x86 \ Debug \ App.g.cs»
И вот FILETIME, который я пытаюсь преобразовать в DateTime: «Мне, кстати, нужен LastWriteTime»
Здесь вы можете увидеть, что dwHighDateTime = 30136437, а также что dwLowDateTime = -2138979250 из этого файла.
И когда я запускаю свой метод плюс другие методы, я получаю следующие даты:
Так что пока все работает отлично. Но почему при просмотре и поиске этого конкретного файла в Windows я получаю другую дату? Вот дата, которую я получаю, когда вижу свойства файла:
Почему даты не совпадают? Что я делаю неправильно?