N283B Forstå delegates (FileWatcher)
Dette er en indledende opgave i brugen af delegates - se bort fra syntax, det skal bare fungere. Opgaven er mere at få en ide om hvad der foregår end at forstå selve koden.
- Du skal skabe en konsol app der skal lytte efter oprettelse af tekstfiler i c:\temp. Hvis en fil bliver oprettet skal der udskrives på konsol “Filen xxx er oprettet”.
- Brug FileSystemWatcher (System.IO), og bind en metode til Created-hændelsen. Brug evt. følgende skabelon kode
- Prøv følgende kode og se hvad der sker når du opretter en fil i c:\temp
System.IO.FileSystemWatcher w = new System.IO.FileSystemWatcher(@"c:\temp", "*.txt");
w.EnableRaisingEvents = true;
w.Created += FileCreated;
Console.WriteLine("Lytter efter nye filer i c:\\temp");
// Kan også være en lambda
// w.Created += (s, e) => Console.WriteLine("Oprettet " + e.FullPath);
Console.ReadLine();
void FileCreated(object sender, System.IO.FileSystemEventArgs e)
{
Console.WriteLine("Filen " + e.Name + " er oprettet");
}
Læg mærke til at FileCreated skal bindes til Created-delegate med += syntaksen. Det skyldes at der i virkeligheden er tale om et event (bruger i ældre brugerflade).