Dateiname per FindFirstChangeNotification
-
Hallo,
ich verwende "FindFirstChangeNotification", um Veränderungen in einem Verzeichnis zu kontrollieren. Wie bekomme ich daraus den Namen der Datei, die gerade verändert wurde? Den Handle habe ich ja, kann allerdings damit leider nichts anfangen.
Vielen Dank
-
ReadDirectoryChangesW oder dir vorher den Inhalt des Verzeichnises merken und nochmal durchgehen um auf Änderungen zu checken
-
danke erstmal für den Tip. Allerdings kriege ich es leider nicht hin, den Dateinamen zu extrahieren. Deshalb habe ich FindFirst und FindNext verwendet, um herauszufinden, welche Dateien verändert wurden. Ich würde aber gerne verstehen, wie man dies mit der Funktion ReadDirectoryChangesW macht.
(Ehrlich gesagt habe ich so meine Schwierigkeiten mit den API-Funktionen. Gibt es da vielleicht Beispiele dazu?)Danke nochmals
xy
-
drei beispiele
-
dankeschön. Dort habe ich allerdings nur ein Beispiel gefunden, und zwar zu FindFirstChangeNotification. Aber soweit bin ich ja schon. Mein Problem ist, daß ich es nicht hinkriegen kann, mit ReadDirectoryChangesW die Dateinamen, die verändert wurden, herauszufinden.
-
Ist evtl. fehlerhaft und dirty, aber funktioniert bei mir
HANDLE hDir = CreateFile("C:\\",FILE_LIST_DIRECTORY,FILE_SHARE_WRITE|FILE_SHARE_READ|FILE_SHARE_DELETE,NULL,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS,NULL); char info[1024] = {0}; DWORD dwBytes; ReadDirectoryChangesW(hDir,(FILE_NOTIFY_INFORMATION *)info,sizeof(info),FALSE,FILE_NOTIFY_CHANGE_FILE_NAME,&dwBytes,NULL,NULL); MessageBoxW(NULL,((FILE_NOTIFY_INFORMATION *)info)->FileName,L"",0);
-
Ich danke dir ganz herzlich, flenders.