2010-06-04 3 views
0

J'essaie de surveiller un dossier en utilisant C# et FileSystemWatcher. tout fonctionne bien, sauf le fait que je peux supprimer le dossier que je suis en train de regarderDossier de verrouillage C# FileSystemWatcher

J'avais l'habitude de le faire en C en utilisant ReadDirectoryChangesW, en créant un handle pour le dossier, et en le verrouillant, ce qui empêchait de le supprimer ou de le renommer l'utilisateur à ce dossier (je parle du dossier surveillé réel, pas son contenu)

Y at-il un moyen de verrouiller ce dossier afin que les gens ne le supprime pas pendant qu'il est surveillé?

(note que je ne veux pas changer les permissions dans le dossier car il pourrait être sur un lecteur/etc partition/usb FAT32, qui ne supporte pas les autorisations)

Répondre

2

Je ne sais pas si c'est une option, mais vous pouvez créer un fichier (temporaire) dans ce dossier et le garder ouvert pendant la durée de la 'surveillance'. Vous devrez le nettoyer à nouveau après le cours. (Vous pouvez même lui donner l'attribut caché pour qu'il n'apparaisse pas aux utilisateurs 'normaux').

Pas la plus belle solution et le fichier restera joncher quand votre programme se bloque avant de supprimer le fichier ...