2009-12-25 11 views

Répondre

1

La réponse à votre question dépend de la façon dont vous l'entendiez. Si vous demandez si vous pouvez détecter une opération physique sur le disque (rechercher, lire ou écrire), la réponse est non. Les disques ont des caches disque pour vous cacher ces opérations au nom de la performance. Vous pouvez savoir quand le cache est modifié en utilisant les mécanismes ci-dessus, mais pas quand l'opération physique est effectuée.

C'est pourquoi nous avons des systèmes de fichiers de journalisation. Même avec la journalisation, cependant, il existe une possibilité de perte de données réelle en cas de défaillance catastrophique et que le cache ne peut pas être sauvegardé.

Parmi les méthodes ci-dessus, j'ai utilisé le FileSystemWatcher, et cela fonctionne très bien. Vous pouvez sélectionner les événements pour lesquels vous souhaitez être informé que votre programme recevra un événement de programme lorsque l'événement de fichier aura lieu. Notez que, au moins sous Windows/C#, l'événement arrive sur un thread distinct, vous devrez donc utiliser des délégués pour signaler le thread principal (ou autre) que l'événement a eu lieu.

1

Vous devez compter sur les API OS spécifiques, que vous pouvez utiliser dans le langage de programmation C.