2012-05-14 16 views
9

Estoy utilizando el código siguiente para escribir la hora Fecha de modificación de un directorio a una etiquetaGetLastWriteTime regresar 31/12/1600 07:00:00 PM

string selectedPath = comboBox1.SelectedItem.ToString(); 
DateTime lastdate = Directory.GetLastWriteTime(selectedPath); 
datemodified.Text = lastdate.ToString(); 

Devuelve la fecha 31/12/1600 7:00:00 PM, que no tengo ni idea de dónde está obteniendo esa fecha. ¿Alguien puede ayudarme a entender por qué está devolviendo esa fecha y cómo puedo solucionarlo? Estoy usando .NET 3.5

Respuesta

29

De the documentation:

Si el directorio se describe en el parámetro de ruta no existe, este método devuelve 12:00 de la noche, 1 de enero 1601 ANUNCIO (CE) Universal Coordinado Hora (UTC), ajustada a la hora local.

Así que, presumiblemente, la zona horaria es UTC-5 (en enero), y no existe el directorio ...

+4

Solo dime Jon, ¿dónde recuerdas todo eso? –

+8

@NikhilAgrawal buscando la definición de la llamada en msdn. Una persona no tiene que recordar todo, solo tiene que recordar mirar –

0

primer pensamiento es el de es correcto su tiempo. La segunda idea es hacer clic derecho en esa carpeta y ver lo que dice en las propiedades. Por último, creaba una nueva carpeta de prueba y ejecutaba ese fragmento de pruebas GetLastWriteTime para que supiera lo que está recuperando.

+0

Lunes, 07 de mayo de 2012, 4:06:00 PM es la fecha en una de las carpetas. Es simplemente extraño para mí. El código tiene sentido, pero lo que devuelve no es – heinst

+0

Me imagino que la cadena no es correcta –

0

GetLastWriteTime no siempre vuelven una fecha fiable, utilice este

string selectedPath = comboBox1.SelectedItem.ToString(); 
DateTime now = DateTime.Now; 
TimeSpan localOffset = now - now.ToUniversalTime(); 
DateTime lastdate = File.GetLastWriteTimeUtc(selectedPath) + localOffset; 
datemodified.Text = lastdate.ToString(); 
0

pregunta antiguo, pero hoy se enfrentaron a este problema. Esa fecha particular también se devuelve cuando su ruta no es válida o el archivo no existe, porque no existe una excepción incorporada en ninguno de esos casos.