2010-12-15 66 views
7

J'essaie de copier des fichiers d'un répertoire à un autre et de les tester en fonction de la date de création du fichier.Date de création et File.Copy Problème

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

Le problème se produit plus tard dans mon programme quand j'ai vérifié la date de création pour assurer qu'il n'y a pas de plus de 5 jours.

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

J'ai vu que la date de création lorsque recopié est définie sur 1980-01-01. Ce n'est pas utile pour mes besoins car je voudrais maintenir la date de création du fichier original. Existe-t-il une autre méthode pour comparer les dates ou est-ce la copie qui perd la valeur de la date de création.

Je suppose que ma question est, comment puis-je maintenir la date de création?

+0

C'est étrange. J'ai essayé de copier un fichier en utilisant File.Copy, et dans mon cas, le fichier copié obtient la date/heure actuelle comme date/heure de création. Mais ... pas exactement. A chaque course, la date de création est la même, même si cela fait maintenant 5 minutes. Même si je copie le même fichier sur la même cible à l'aide de l'Explorateur, le fichier copié affiche la même date/heure (qui était il y a 6 minutes). Il semble presque que Windows met en cache la date de création ou quelque chose. Si je change le dossier cible ou le nom de fichier, ce nouveau fichier obtient la date/heure actuelle. – comecme

Répondre

11

Utilisez la méthode File.SetCreationTime après avoir copié le fichier.
Vous pouvez obtenir l'heure de création du fichier source avec File.GetCreationTime

+0

Merci, je suis un peu fatigué aujourd'hui été très occupé aujourd'hui et aurait dû regarder un peu plus près de trouver la faute. Trouvé maintenant. –

+0

Pas de problème! :) –