Dateinamen vom Handle bekommen
-
Hallo Kollegen,
ich habe einen Thread geschrieben, der ein Verzeichnis überwacht.
In der Execute-Methode habe ich folgenden API- Code geschrieben:FChangeHandle = FindFirstChangeNotification(FWatchPath.c_str(), true, FILE_NOTIFY_CHANGE_FILE_NAME || FILE_NOTIFY_CHANGE_SIZE || FILE_NOTIFY_CHANGE_ATTRIBUTES); if (FChangeHandle != INVALID_HANDLE_VALUE) { while(!Terminated)//(true) { if (WaitForSingleObject(FChangeHandle, 500) == WAIT_OBJECT_0) //Änderung. { Synchronize(&WriteToFile); FindNextChangeNotification(FChangeHandle); } //if (Terminated) //return; //Raus. } }Das funktioniert wunderbar.
Die Funktion gibt mir aber das Handle (FChangeHandle) zurück. Viele Funktionen zum Auslesen der Dateiattribute und weitere Funtionen benötigen aber den Dateinamen. Wie kann ich aus dem Handle den Dateinamen ermitteln? Ich habe die BCB hilfe abgesucht und die API-Hilfe im BCB. Leider ohne Erfolg
mfg Stephan
-
Das Handle hat hier nichts mit einer Datei zu tun...
Du solltest die Änderungen lesen, dann bekommst Du auch den Namen:
ReadDirectoryChangesW
-
danke, das hat meine suche in eine neue, vielversprechende Richtung gelenkt und ich habe auch schon einiges dazu in diesem Forum gefunden. Manchmal braucht man nur neue Suchbegriffe

mfg Stephan