Delphi2007. in XP omgeving.
Ik wil een bestand in de gaten houden, en heb daarvoor system.IO.FileSystemWatcher gevonden, met genoeg voorbeelden op Internet. Ook op dit forum heb ik een entry gevonden, uit 2003 (dus je zou verwachten dat er met Delphi2007 ook mogelijkheden zijn) maar dat heeft me niet verder geholpen. Dus het _zou_ moeten kunnen. alleen krijg ik het op een of andere manier niet gecompileerd..
Code snipplet:
Code:
var
FW: FileSystemWatcher ;
CR : WaitForChangedResult ;
begin
try
FW := FileSystemWatcher.create (TempDirectory); // TempDirectory verwijst naar de directory
FW.Filter := ExtractFilename(bestand) ; // Alleen dit bestand - eerder zelf aangemaakt
FW.NotifyFilters := NotifyFilters.Changed;
CR := FW.WaitForChanged(WatcherChangeTypes.Changed, iTo * 1000); // iTO = 5, dus Maximaal 5 seconden wachten
if CR = TimedOut then
....
probleem is dat dit geeft:
Undeclared identifier: 'FileSystemWatcher'
Undeclared identifier: 'WaitForChangedResult'
Eigenlijk logisch omdat dit (gezien gevonden voorbeelden) voorzien had moeten worden van namespace system.IO, dus:
Code:
FW: system.IO.FileSystemWatcher ;
maar ook dat wordt niet geaccepteerd:
E2003 Undeclared identifier: 'IO'
(vreemd is ook dat dan ook gegenereerd wordt:
E1030 Invalid compiler directive: 'CR'
maar dat kan een hik van de compiler zijn door die eerdere fout)
'system" alleen is niet voldoende, want ook dan wordt FileSystemWatcher niet gevonden (wat te verwachten is omdat dat in IO zit). "IO" is niet gekend....
"system"' of "system.IO" opnemen in uses clause is ook niet mogelijk, want dan blijkt die dubbel te zijn benoemd - dat is niet zo, dus ik vermoed dat die standaard meegenomen wordt.
Derhalve de vraag: Hoe krijg ik FileSystemWatcher geaccepteerd?
Bookmarks