La mayoría de los archivos que leí llegar el momento adecuado cuando se utiliza el método siguiente para convertir:no ser capaz de convertir de FILETIME (ventanas de tiempo) a fechaHora (me da una fecha diferente)
// 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í tener 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. Por lo que el archivo que pasa a ser en mi depuración es:
"A: \ Users \ Tono \ Documents \ Visual Studio 2010 \ Projects \ WpfApplication4 \ WpfApplication4 \ obj \ x86 \ Debug \ App.g.cs"
y aquí es el FILETIME que estoy tratando de convertir a DateTime "necesito el LastWriteTime por cierto"
aquí se puede ver que dwHighDateTime = 30136437 y también que dwLowDateTime = -2138979250 de ese archivo.
Y cuando corro mi método más otras técnicas consigo las siguientes fechas:
Así que hasta ahora todo parece estar funcionando muy bien. Pero ¿por qué eso es que cuando navego y busco ese archivo específico en Windows obtengo una fecha diferente? Aquí está la fecha que recibo al ver las propiedades del archivo:
¿Por qué las fechas no coinciden? ¿Qué estoy haciendo mal?
¿Por qué estás haciendo esto de la manera difícil? Parece que estás reescribiendo bastante la clase FileInfo ... http://msdn.microsoft.com/en-us/library/system.io.fileinfo.aspx –
No estoy seguro de por qué el OP está haciendo esto de la manera difícil . Cuando trabaje con nombres de ruta larga, es decir, rutas de más de [MAX_LENGTH] = 260 bytes, necesitará _ reescribir la mayor parte de System.IO para usar código no administrado. Puede encontrar más información aquí: http://blogs.msdn.com/b/bclteam/archive/2007/02/13/long-paths-in-net-part-1-of-3-kim-hamilton .aspx –
Existen situaciones legítimas para usar FILETIME/GetFileTime en lugar de FileInfo: por ejemplo, si desea obtener estadísticas sobre un archivo cuyo identificador ya tiene abierto (y no puede volver a abrirlo a través de FileInfo por algún motivo) –