no puedo convertir de FILETIME (hora de Windows) a dateTime (obtengo una fecha diferente)

La mayoría de los archivos que leo obtienen el momento adecuado cuando utilizo el siguiente método para convertir:

// 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);
}

Aquí tengo un ejemplo en Visual Studio para mostrar cómo este método a veces no funciona, por ejemplo, mostraré el archivo real en mi computadora y la depuración. Entonces, el archivo que está en mi depuración es:

"A: \ Users \ Tono \ Documents \ Visual Studio 2010 \ Projects \ WpfApplication4 \ WpfApplication4 \ obj \ x86 \ Debug \ App.g.cs"

Y aquí está el FILETIME que estoy tratando de convertir a DateTime "Necesito el LastWriteTime por cierto"

Aquí puede ver que dwHighDateTime = 30136437 y también que dwLowDateTime = -2138979250 de ese archivo.

Y cuando ejecuto mi método más otras técnicas obtengo las siguientes fechas:

Hasta ahora todo parece estar funcionando muy bien. ¿Pero por qué es que cuando busco y busco ese archivo específico en Windows obtengo una fecha diferente? Aquí está la fecha que obtengo al ver las propiedades del archivo:

¿Por qué las fechas no coinciden? ¿Qué estoy haciendo mal

Respuestas a la pregunta(5)

Su respuesta a la pregunta