J'ai un fichier journal qui est écrit par une application tierce et je voudrais que mon application "lise" ce fichier journal en temps réel/proche, analyse le nouveau journal entrées et agir sur certains événements.Utiliser MemoryMappedFile et FileSystemWatcher pour détecter de nouvelles entrées dans le fichier journal
Ma pensée était que je pourrais réaliser ceci avec une combinaison de FileSystemWatcher (pour signaler des changements de dossier) et de MemoryMappedFile (pour continuer la lecture d'un certain décalage). Cependant, comme c'est la première fois que j'utilise MemoryMappedFiles, je rencontre des problèmes qui découlent probablement du fait que je ne comprends pas bien le concept (par exemple, je ne peux pas ouvrir le fichier existant tel qu'il est utilisé par les autres processus).
Je me demandais si quelqu'un avait un exemple de comment utiliser MemoryMappedFiles pour lire un fichier qui est verrouillé par un autre processus?
Merci,
Tom
EDIT:
D'après les commentaires, il semble que la mémoire mappée fichiers ne me aider à accéder à des fichiers qui ont un verrou exclusif. Cependant, des outils "en queue" comme, par ex. Baretail (http://www.baremetalsoft.com/baretail/index.php) est capable de faire exactement cela. Il n'a aucun problème à lire le fichier qui a un verrou exclusif d'une autre application à intervalles de 1s). Donc, il doit y avoir un moyen de faire cela?
editEdit:
Pour répondre à ma propre question, l'affaire dans l'ouverture d'un fichier verrouillé est, en créant le FileStream avec les drapeaux d'accès suivants:
fileStream = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Delete | FileShare.ReadWrite);
J'ai fait un commentaire à propos de l'argument FileShare requis dans le poste de James. Un MMF ne peut pas contourner un fichier complètement verrouillé, vous seriez bloqué si c'est le cas. –
S'il vous plaît voir mon Modifier ci-dessus. Le problème semble être plus concentré sur le verrouillage exclusif que MMF vs FileStream maintenant.J'ai essayé plusieurs outils de queue Windows et ils semblent tous être en mesure de contourner la serrure exclusive très bien, aucune idée de comment ils y parviennent? – TJF