2011-05-19 2 views
2

Je suis actuellement en train de jouer avec la classe FileSystemWatcher voulant savoir comment spécifier le chemin du répertoire, mais aussi tous ses fichiers enfants sont des dossiers. Donc, il va chercher des changements n'importe où dans C: \ e.g. C: \ Program Files \ test etc.FileSystemWatcher Class - Question simple

string DirPath = "C:\\*.*"; 

J'ai essayé d'ajouter . sur le chemin de directroy, mais pas de chance

code source ci-dessous:

static void Main(string[] args) 
{ 
    string DirPath = "C:\\*.*"; 
    FileSystemWatcher FileWatcher = new FileSystemWatcher(DirPath); 
    FileWatcher.Changed += new FileSystemEventHandler(FileWatcher_Changed); 
    FileWatcher.Created += new FileSystemEventHandler(FileWatcher_Created); 
    FileWatcher.Deleted += new FileSystemEventHandler(FileWatcher_Deleted); 
    FileWatcher.Renamed += new RenamedEventHandler(FileWatcher_Renamed); 
    FileWatcher.EnableRaisingEvents = true; 

    Console.ReadKey(); 
} 

Répondre

7

Utilisez la propriété IncludeSubdirectories du FileSystemWatcher.

Si vous ajoutez la ligne

FileWatcher.IncludeSubdirectories = true; 

il regardera tous les sous-répertoires dans le chemin d'accès spécifié.

+0

Pourriez-vous donner un exemple s'il vous plaît? – Ken

+0

Voir mes modifications. Est-ce que cela le rend plus clair? –

+0

Un grand merci, je viens de me découvrir – Ken

1

Mettre une notification de modification de fichier sur tous C: est une très mauvaise idée - si vous voulez vraiment surveiller un volume entier, vous devriez probablement utiliser le USN Journal