Polling im Verzeichniss / auf Dateien warten



  • WinAPI



  • du hast doch schon einen link auf die winapi funktion bekommen. was willst du noch?



  • ....

    Schau dir bitte den Code an, danach schau den Link an, den lolz gesetzt hat dann schau dir meinen link an. Nach der Prozdedur müstet du gemerkt haben das das Hauptproblem bei Netzwerknamen leigt und nicht bei der Neuinitalisierung bei FindFirstFile Was übrigens ja eine WIN API Funktion ist (vom gleichen Stamm wie Die Funktion von Lolz). Es gibt micht sicherheit eine möglichkeit dies mit ANSI standart zu implementiern und einer von euch ist da drausen der das weis.

    Danke 😉



  • Mag sein, dass es irgendeinen ANSI Standard gibt, der den Dateizugriff regelt und dass es auch irgendeine C++-Bibliothek (für Windows) gibt die diesen Standard umsetzt. Aber egal wie gehört die Frage niht in das C++ Forum..

    Bei FindFirstChangeNotification wird doch gar kein FindFirstFile verwendet 😕

    Was für ein Problem hast du denn bei dem angeben von einem Netzwerknamen? Gib uns die Informationen doch einfach und lass sie uns nicht raten.



  • Dieser Fehler bezieht sich übrigens auf NT4.0, ich dachte du hast XP?



  • ich bekomme nach der ersten Reinit ein falsches Handle zurück. Die freigegebene Netzresource liegt auf einer AS400. FindFirstChangeNotification leifert mir nun true zurück falls die veränderung eingetreten ist. So wie ich es verstehe, hab ich nun die möglichkeit das Reinit nach dem Event true abzuarbeiten. Dies ändert aber nichts an dem eingendlichen Invalid Handle Problem.

    nun bin ich offen für ein anderes polling, das meinetwegen winAPI .Net oder QT vorraussetzt. Inzwischen habe ich beispielsweise Die "SearchPath" Funktion gefunden, die aber leider auch nicht klappt. Mein wunsch wäre jetzt ein eine Pollingfunktion, die jemand schon einmal implementiert hat . Egal ob winAPI oder .NET



  • Du kannst mal schauen ob Dich System::IO::FileSystemWatcher weiter bringt.

    Mit FileSystemWatcher können Sie die Änderungen in einem angegebenen Verzeichnis überwachen lassen. Änderungen in Dateien und Unterverzeichnissen des angegebenen Verzeichnisses können überwacht werden. Sie können eine Komponente zum Überwachen von Dateien auf einem lokalen Computer, einem Netzlaufwerk oder einem Remotecomputer erstellen.



  • sorry für die Formatierung mit FindFirstChangeNotification hätte ich es jetzt so gemacht ...

    do 
    	{ 
    
    		FindNextFile(hFind,&findData); 
    		/* ReInitalisierung für Polling */ 
    		if(0==sFileName.compare(findData.cFileName)) 
    		{	
    			     dwWaitStatus=WaitForSingleObject(dwChangeHandle,INFINITE);
    			FindNextFile(hFind,&findData);
    		}
    
    		sFileName =findData.cFileName; 
    
    		if(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
    			isNotOK = true; 
    		else 
    			isNotOK = false; 
    
    	}while(isNotOK);
    


  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Und hats damit funktioniert ?



  • Ich glaube das was er sucht ist dies hier:
    http://%/&/(&)§%"!.!§%§!

    Und da unter "Polling".

    mfg Krümel



  • Krümel06 schrieb:

    Ich glaube das was er sucht ist dies hier:
    http://%/&/(&)§%"!.!§%§!

    Und da unter "Polling".

    mfg Krümel

    Super Post...OMG 👎



  • nein, die performance hat sich zwar verbessert, da eine Verzeichnissveränderung ein Event auslöst und das programm erst dann anfängt, aber das Probelm, das ich mir nach dem 1. Reinit auf dem Netzlaufwerk der AS400 ein INVALID HANDLE hol, bleibt weiter bestehen....

    heul heul heul

    :-(((


Anmelden zum Antworten