não conseguir converter de FILETIME (hora do Windows) para dateTime (recebo uma data diferente)
A maioria dos arquivos que leio obtém a hora certa ao usar o seguinte método para converter:
// 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);
}
Aqui tenho um exemplo no visual studio para mostrar como esse método às vezes não funciona. Por exemplo, mostrarei o arquivo real no meu computador e a depuração. Portanto, o arquivo que está na minha depuração é:
"A: \ Usuários \ Tono \ Documents \ Visual Studio 2010 \ Projetos \ WpfApplication4 \ WpfApplication4 \ obj \ x86 \ Debug \ App.g.cs"
E aqui está o FILETIME que estou tentando converter para DateTime "Eu preciso do LastWriteTime, a propósito"
Aqui você pode ver o dwHighDateTime = 30136437 e também o dwLowDateTime = -2138979250 desse arquiv
E quando executo meu método, além de outras técnicas, recebo as seguintes datas:
Até agora, tudo parece estar funcionando muito bem. Mas por que é que, quando navego e procuro esse arquivo específico no Windows, recebo uma data diferente!? Aqui está a data que eu recebo ao ver as propriedades do arquivo:
Por que as datas não coincidem? O que estou fazendo errado