вместо

инство файлов, которые я прочитал, получают правильное время при использовании следующего метода для преобразования:

// 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 я получаю другую дату? Вот дата, которую я получаю, когда вижу свойства файла:

Почему даты не совпадают? Что я делаю неправильно?

Ответы на вопрос(5)

Ваш ответ на вопрос