2008-10-10 9 views
3

Est-il possible de rompre à l'exécution lorsqu'un fichier particulier a été modifié?Débogage: pause à l'exécution lorsque le fichier est modifié? (windows)

ie. surveiller le fichier et percer dans un débogueur une fois qu'une modification a été apportée à celui-ci.

Ceci est pour une application Windows ... est-ce possible en studio visuel ou windbg?

edit: je aurais dû mentionner que ceci est pour une application Win32 ..

Répondre

2

Vous pouvez utiliser la classe System.IO.FileSystemWatcher.

FileSystemWatcher watcher = = new FileSystemWatcher(); 
watcher.Filter = @"myFile.ini"; 
watcher.Changed += new FileSystemEventHandler(watcher_Changed); 

et vous mettre en œuvre le délégué du type FileSystemEventHandler:

static void watcher_Changed(object sender, FileSystemArgs e) 
{ 
    Console.WriteLine("File {0} has changed.", e.FullPath); 
} 

chaque fois que le fichier que vous avez sélectionné dans le filtre est modifié, vous obtenez une alerte (vous pouvez utiliser à la fois une classe de débogage ou Tracer la classe pour sortir les données). En outre, la classe FileSystemWatcher contient plus d'événements (renommés, supprimés, créés).

+0

Je pense que vous voulez dire FileSystemEventArgs au lieu de FileSystemArgs (à moins que ce soit différent dans .NET 3.5 ou quelque chose comme ça) – MusiGenesis

0

supposer que ce soit .NET, le System.IO. FileSystemWatcher classe est ce dont vous avez besoin.

FileSystemWatcher watcher = new FileSystemWatcher("c:filename.txt"); 
watcher.Changed += new FileSystemEventHandler(watcher_Changed); 
// 
void watcher_Changed(object sender, FileSystemEventArgs e) 
{ 
    // put a breakpoint here 
} 
+0

J'aurais dû mentionner que c'est pour une application Win32 .. merci pour la réponse, c'est bon à savoir! –

Questions connexes