2009-04-23 10 views
1

J'ai un petit utilitaire qui effectue un traitement sur un fichier et change l'extension du fichier en .processed quand il est fini. Je veux également supprimer ces vieux fichiers .processed après "x" nombre de jours. Y at-il un attribut de fichier qui vous indique quand un nom de fichier a été modifié pour la dernière fois? Je me rends compte que je peux ajouter des espaces blancs à la fin du fichier après le traitement, le réenregistrer, puis obtenir l'attribut "LastWriteTime", mais je ne veux pas du tout toucher le fichier original. Des idées?Comment déterminez-vous quand un nom de fichier a été modifié pour la dernière fois en C#?

Répondre

2

LastWriteTime dans l'espace de noms System.IO.FileInfo.

FileInfo fi1 = new FileInfo(path); 

Oh oui, vous pouvez également écrire cette valeur. Mettez-le à jour lorsque vous mettez à jour le nom de fichier.

+2

Renommer spécifiquement ne pas modifier LastWriteTime –

+0

Merci d'avoir oublié d'ajouter la partie concernant la mise à jour de la valeur. – theG

+0

Freaking Sweet! N'a pas réalisé LastWriteTime était un getter et un setter. – Crackerjack

0

Je ne comprends pas ... LastWritetime devrait être la dernière fois que le fichier a été écrit. Donc, si votre traitement modifie le fichier x.processed, vous pouvez regarder cela. Vous pouvez également utiliser GetLastAccessTime pour la dernière fois qu'il a été lu.

Modifier: Ah, les renames ne modifient pas LastWriteTime. Alors, set LastWriteTime yourself

0

Je ne pense pas que renommer le fichier met à jour le LastWriteTime. Lorsque votre processus renomme le fichier, mettez à jour LastWriteTime dans l'objet FileInfo en même temps, puis vous pouvez utiliser LastWriteTime pour votre comparaison.

0

Même si les fenêtres ont mise à jour LastWriteTime lorsque vous avez renommé un fichier, il ne serait pas assez bon:

Lorsque vous modifiez le nom d'un fichier que vous pouvez vérifier la date de LastWriteTime sur le nouveau nom de fichier, mais Une fois que vous avez édité le fichier de quelque manière que ce soit, les informations sont perdues. Heureusement, dans ce cas, vous aurez changé le fichier d'une autre manière, donc cela n'a pas d'importance. Vous pouvez juste vérifier et savoir que vous allez bien.

1

Une autre idée si la mise à jour de la solution LastWriteTime ne répond pas à vos besoins:

Stocker le nom de fichier (ou nom de fichier renommé) et la date du fichier a été traité dans une base de données.

Questions connexes