J'essaie de garder une trace des fichiers copiés par les utilisateurs et d'autres applications. Le fichierSystemWatch n'appartient que des événements pour modifiés, créés, supprimés, disposés, des erreurs et renommés. Il ne tire pas un événement lorsqu'un fichier est accédé par la fonction de copie ou lorsque le nouveau fichier est en cours de copie. P>
existe-t-il une méthode de surveillance de l'événement / fonction de copie de Windows? P>
4 Réponses :
Je ne sais pas de quelque manière que ce soit en utilisant c #. p>
Vous pouvez le faire si vous êtes prêt à écrire un filtre du système de fichiers Driver . [Territoire expert définitivement, car il est possible de corrompre des fichiers et / ou de faire venir votre système] p>
Un pilote de filtre système de fichiers intercepte les demandes ciblées dans un fichier système ou autre pilote de filtrage du système de fichiers. En interceptant le demande avant qu'il atteigne sa cible prévue, le pilote de filtre peut étendre ou remplacer la fonctionnalité fournie par la cible d'origine de la demande. Exemples de pilotes de filtres système de fichiers incluent Anti-Virus Filtres, agents de secours et produits de cryptage. Développer le fichier Systèmes et pilotes de filtres de système de fichiers, utilisez le fichier IFS (fichier installable Système) Kit, fourni avec le kit de pilotes Windows (WDK). P> blockQuote>
Le pilote de filtre peut suivre des opérations de lecture et d'écriture séparées, mais elle ne peut pas établir le lien entre deux. Il n'est pas possible d'identifier la copie de manière définie.
Vous faites la bonne chose avec Vous pouvez accrocher la routine de copie du système d'exploitation, mais cela ne vous garantira que de bons résultats: les applications sont libres de mettre en œuvre leur propre copie en ouvrant simplement les fichiers source et de destination et en copiant les octets. P>
Le renommage est différent car une renommée effectuée par le système d'exploitation ne peut pas être facilement imitée à travers d'autres moyens. Vous allez donc attraper tous les renommés avec le Donc, si vous avez vraiment besoin de remarquer un fichier à copier, mon approche suggérée est la suivante: p>
fichiersystemwatcher code>. Windows n'a pas de mécanisme intégré pour signaler des copies de manière fiable. P>
FileSystemwatcher code>. Notez que le déplacement entre les lecteurs ressemble plus à la copie: vous n'obtiendrez pas une notification renommée, mais un créé et supprimé à la place. P>
Closefile code> appelle, en plus au
FileSystemwatcher code>. li>
Vous pouvez utiliser Dossier d'audit et accès au dossier de Windows qui écrit une entrée de journal des événements et vous pouvez configurer des programmes pour démarrer lorsqu'un tel événement se produit P>
Je ne peux penser à aucun bon moyen. p>
Pour chaque fichier nouvellement créé, vous devez vérifier s'il y a un duplicaté précis (peut-être avec un nom différent) n'importe où sur le système de fichiers. Vous pouvez évidemment faire cette force brute, mais la solution serait très inélégante, lente et fragile! P>
Pouvez-vous regarder à la place de l'instance du presse-papiers? Juste une pensée. msdn.microsoft.com/en-us/library/ ...
Dans quelle mesure pouvez-vous tolérer l'échec de la piste d'une copie? Vous pouvez probablement suivre la plupart des copies i> (par exemple ceux faits par explorateur), mais certains glisseront.
Pourquoi essayez-vous de faire cela?