2010-09-08 35 views
14

Tengo un número de archivos en una carpeta y necesito obtener la última fecha de modificación. Así que utilicéObtener la fecha de modificación del archivo en VB.NET

FDate = IO.File.GetLastWriteTime(FName) 

Funciona bien con algunos archivos, pero en los demás, consigo una fecha de 01/01/1601. Pero cuando reviso los archivos en Windows Explorer, todas las fechas parecen normales (recientes). Entonces, supongo que hay varias fechas de archivos almacenadas en el sistema de archivos, y las que está viendo .NET no son las que está viendo Windows. ¿Cómo puedo obtener exactamente la fecha que aparece como "fecha de modificación" en una ventana del explorador de archivos?

Probé algunas cosas de API Visual Basic 6.0, pero eso no parece funcionar en .NET.

Respuesta

27

De File.GetLastWriteTime Method:

Si no existe el archivo descrito en el parámetro de ruta, este método devuelve 12:00 de la noche, 1 de enero 1601 ANUNCIO (CE) Tiempo Universal Coordinado (UTC), ajustado a hora local.

Es probable que falte el archivo que está consultando.

+3

No puedo creerlo, tienes razón, no lo es !! ¡Pero fue antes! Algo extraño está sucediendo. Es curioso cómo cuando te quedas atrapado en un problema a veces puedes perderte lo obvio. Aclamaciones – Ianb

4

La consulta que se menciona a continuación obtendrá el LastModifiedDate correcto para todos los archivos contenidos en una carpeta.

Dim strFilepath = "" 'Specify path details 
    Dim directory As New System.IO.DirectoryInfo(strFilepath) 
    Dim File As System.IO.FileInfo() = directory.GetFiles() 
    Dim File1 As System.IO.FileInfo 
    For Each File1 In File 
     Dim strLastModified As String 
     strLastModified = System.IO.File.GetLastWriteTime(strFilepath & "\" & File1.Name).ToShortDateString() 
    Next 
Cuestiones relacionadas