Question

Voici le scénario:

Je suis en train d'écrire une application qui permettra de surveiller tous les changements dans un répertoire spécifique.Ce répertoire sera inondé avec des milliers de fichiers en une minute chacun, avec un "presque" GUID unique.Le format du fichier est ceci:

GUID.dat où GUID == xxxxxxxxxxxxxxxxxxxxxxxxxxxxx (le contenu ne sont pas pertinentes, mais c'est juste des données de texte)

Mon application est une forme qui a une seule zone de texte qui affiche tous les fichiers qui ont été ajoutés et supprimés en temps réel.Chaque fois qu'un nouveau fichier est fourni dans-je mettre à jour la zone de texte avec ce fichier, MAIS je dois d'abord assurez-vous que ce semi-GUID unique est vraiment unique, si elle l'est, mise à jour de la zone de texte avec ce nouveau fichier.

Quand un fichier est supprimé à partir de ce répertoire, assurez-vous qu'il existe, supprimez-le, la mise à jour de zone de texte en conséquence.

Le problème est que j'ai été en utilisant le .NET filewatcher et il semble qu'il y ait une mémoire tampon interne qui saute à chaque fois que l' (buffersize + 1)-ième fichier est en.J'ai aussi essayé de garder une Liste interne dans mon application, et juste ajouter tous les fichiers qui arrive, mais ne l'unique GUID vérifier plus tard, mais pas de dés.

Était-ce utile?

La solution

Un couple de choses que j'ai dans ma tête:

  • Si le guid pas unique, ne serait-il pas remplacer le fichier avec le même nom, ou est le test basé sur une recherche qui fait l'action extérieure (par ex.vérifier l'archive)?(c'est à direest-ce un YAGNI moment?)
  • J'ai utilisé FileSystemWatcher avant avec d'assez bons résultats, pouvez-vous nous donner des idées comment votre fait faire les choses?
  • Quand vous dites "pas de dés" lorsque vous travaillez avec votre liste personnalisée, quel était le problème?Et comment avez-vous été la vérification de modifications du système de fichiers sans FileSystemWatcher?!

Désolé, pas encore de réponse, vous voulez juste en savoir plus sur le problème :)

Autres conseils

Je vous suggère de jeter un oeil à la SHChangeNotify Les appels de l'API, qui peut vous aviser de toutes sortes de shell événements.Pour surveiller la création de fichiers et de suppression de l'activité, vous pouvez payer une attention particulière à la SHCNE_CREATE et SHCNE_DELETE arguments.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top