2010-12-15 8 views
7

Estoy tratando de copiar archivos de un directorio a otro y probar según la fecha de creación del archivo.Fecha de creación y problema File.Copy

File.Copy(fileName, directory + fileNameOnly, true); 

El problema se produce más tarde en mi programa cuando comprobé la fecha de creación para asegurarse de que no haya más de 5 días de edad.

FileInfo file = new FileInfo(fileName); 
if (file.CreationTime.AddHours(120) < DateTime.Now) {} 

He visto que la fecha de creación cuando se copia de nuevo está configurada en 1980-01-01. Esto no es útil para mis requisitos, ya que me gustaría mantener la fecha de creación a partir del archivo original. ¿Hay otro método para comparar las fechas o es la copia que pierde el valor de la fecha de creación?

Supongo que mi pregunta es, ¿cómo puedo mantener la fecha de creación?

+0

Eso es extraño. Intenté copiar un archivo usando File.Copy y, en mi caso, el archivo copiado obtiene la fecha/hora actual como fecha/hora de creación. Pero ... no exactamente. En cada ejecución, la fecha de creación es la misma, aunque eso es ahora hace 5 minutos. Incluso si copio el mismo archivo en el mismo destino usando Explorer, el archivo copiado muestra esa misma fecha/hora (que para entonces era 6 minutos atrás). Casi parece que Windows está almacenando en caché la fecha de creación o algo así. Si cambio la carpeta de destino o el nombre de archivo, ese nuevo archivo obtiene la fecha/hora real. – comecme

Respuesta

11

Utilice el método File.SetCreationTime después de copiar el archivo.
Puede obtener la hora de creación del archivo fuente con File.GetCreationTime

+0

Gracias, estoy un poco cansado hoy he estado muy ocupado hoy y debería haber mirado un poco más cerca para encontrar la falla. Encontrado ahora. –

+0

¡Ningún problema! :) –

Cuestiones relacionadas