2009-08-20 5 views
0

J'ai une application mixte qui contient des données à la fois dans une base de données et dans un magasin de fichiers physique géré par mon application. Comme j'ai développé mon application, j'ai parfois eu des scénarios où je déplace ou supprime un fichier du disque dur à travers mon application et pour quelque raison que quelque chose ira mal et une exception est levée. Actuellement, il suffit de me connecter et de passer à autre chose..NET - Gestion fiable du système de fichiers à partir d'une application

En supposant le scénario de suppression ou de déplacement, lorsque je lance et enregistre l'exception, un fichier rouge ou éventuellement manquant occupe de l'espace et peut également provoquer des erreurs de présentation dans l'application. Au-delà de la maintenance manuelle du système de fichiers, quelles sont les techniques fiables pour maintenir un système de fichiers à partir d'une application?

Je suis particulièrement intéressé par la façon de m'assurer, quoi qu'il arrive, qu'un fichier que j'appelle Delete() dans mon application est en fait effacé.

Répondre

2

Étant donné que vous utilisez déjà une base de données dans votre application, vous pouvez envisager de créer une table pour suivre les opérations du système de fichiers. Par exemple, vous pouvez créer une ligne contenant les détails de l'opération du système de fichiers que vous êtes sur le point d'effectuer, puis effectuer le fonctionnement du système de fichiers et, en cas de succès, supprimer la ligne ou la marquer dans la base de données. Si votre application échoue et/ou doit être redémarrée, cela fournira un mécanisme simple pour déterminer quelles opérations du système de fichiers n'ont pas abouti et doivent être réessayées.

3

Si vous utilisez Vista ou une version ultérieure, vous pouvez utiliser le Transactional File System pour vous assurer que vos opérations sont atomiques. Vous pouvez trouver quelques exemples au Transactional File System Operations avec des emballages et autres.

+0

Système de fichiers transactionnel fonctionne très bien. N'oubliez pas que vous aurez besoin du DTC pour que les deux ressources jouent bien ensemble. –

+0

Et en dehors de Vista? :( –

Questions connexes