2010-05-09 23 views
0

J'essaye d'écrire un programme simple qui sauvegardera ma clé USB. Je veux que cela fonctionne automatiquement et silencieusement en arrière-plan, et je veux aussi que ce soit aussi rapide que possible. La chose est, réinitialiser tous les temps d'accès est inutile pour moi, et quelque chose que je veux éviter. Je sais que je peux lire les temps d'accès et les remettre, mais je parie que ça va échouer un jour dans le futur. Il serait beaucoup plus simple de lire les fichiers sans jamais les changer. Aussi, quel est le moyen le plus rapide de le faire? Quelles différences y aurait-il entre, disons, un lecteur flash et un disque dur externe.Sauvegarde par lots d'un disque dur sans modification des temps d'accès C#

Je vous écris en C#, car il est le moyen le plus simple de le faire et il durera probablement plus générations de Windows ..

Répondre

3

Ce n'est pas une hypothèse logique. La propriété FileInfo.LastAccessTime est figée dans la spécification .NET, elle est sûre de survivre à votre code C#. S'il y aura jamais une version de Windows qui, pour une raison mystérieuse, ne supporte pas l'horodatage du dernier accès sur un fichier, Microsoft aura le fardeau de ré-implémenter la propriété de manière raisonnable. La sémantique de la propriété est également figée et, depuis 17 ans, il n'y aura jamais de version de Windows qui vous permettra de lire un fichier sans mettre à jour la valeur. Par exemple, vous devez également réinitialiser le bit FileAttributes.Archive.

+0

FileAttributes.Archive? qu'est-ce que ça fait? En outre, je veux utiliser C# car je n'aurai pas à le recompiler pour Windows 8. – user336660

+0

Le bit Archive indique que le fichier n'a pas encore été sauvegardé. Il est automatiquement défini par Windows lorsque le fichier est modifié. Un programme de sauvegarde doit le réinitialiser. Tout cela peut être fait à partir de C#, utilisez la propriété FileInfo.Attributes. –

+0

@johnathan Vous n'avez pas besoin de recompiler pour chaque version de Windows avec des applications natives. L'application écrite pour XP devrait fonctionner correctement dans 7. – svick