2008-11-25 11 views
3

Je fais un projet dans un cours à mon université sur les systèmes distribués. Je prévois de créer quelque chose de similaire à Dropbox (getdropbox.com), mais avec une sorte de peer-to-peer non-centralisé. Pour cela j'ai besoin d'une méthode de détection de changement dans une structure de répertoire. Comment pensez-vous que Dropbox fait cela? Leur mise en œuvre fonctionne remarquablement bien. Je me demande s'ils utilisent FileSystemWatcher de l'API win32 sur Windows, et quelque chose de similaire et de plate-forme dépend de Linux et Mac.comment regarder un système de fichiers pour le changement

Répondre

1

A ma connaissance, DropBox (et autres) utilise un service Windows (ou un démon du côté Linux/Mac) pour surveiller le système de fichiers. Créer un tel .Net est très facile et ce scénario est généralement l'exemple de manuel pour les services Windows. Je crois que faire une chose similaire en C++ serait aussi simple.

Voici un lien vers un didacticiel simple pour .Net sur la création d'un service sous Windows. Tout ce que vous devez faire pour votre solution est d'ajouter votre logique de surveillance dans l'événement Timer.Tick().

http://www.developer.com/net/csharp/article.php/2173801

+1

je méprendre sur ce que vous avez l'intention de le faire ici. Ajouter la logique à la minuterie tick? Cela signifie-t-il que vous avez l'intention d'obtenir un répertoire répertoriant chaque tick et de le comparer? Non! Ne fais pas ça! –

+1

Non, n'utilisez jamais de minuterie. Sous Windows, utilisez FileSystemWatcher - sur Mac, utilisez FSEvents. Désolé de devoir voter cette réponse même si elle a déjà été acceptée. – ajacian81

3

Du côté Linux, il y a le inotify horriblement sans papier. Si cela ne vous dérange pas d'utiliser glib, il y a la classe GFileMonitor, qui est vraiment facile à utiliser. Je ne pense pas que ce soit portable, donc ce serait uniquement Linux.

Questions connexes