Большинство файлов, которые я прочитал, получают правильное время при использовании следующего метода для преобразования:
// 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"
А вот ФИЛЬТРАЦИЯ, которую я пытаюсь преобразовать в DateTime: «Мне нужен LastWriteTime, кстати»
Здесь вы можете увидетьчто dwHighDateTime = 30136437, а также что dwLowDateTime = -2138979250 из этого файла.
И когда я запускаю свой метод и другие методы, я получаю следующие даты:
Пока что все кажетсяработать отлично.Но почему при просмотре и поиске этого конкретного файла в Windows я получаю другую дату?Вот дата, которую я получаю при просмотре свойств файла:
Почему даты не совпадают?Что я делаю неправильно?