Änderungen in Datei überwachen



  • Hallo,

    ich suche nach einer Möglichkeit ein Programm unter Windows7 automatisch zu starten, sobald eine Datei von außen geändert wird. Das gleiche möchte ich dann unter Linux machen. Ein Ordner soll also überwacht werden und sobald eine Datei geändert wird, soll der PC das merken und das als Auslöser für das Ausführen des Programms sehen.

    Ich bin in diesen Sachen ein Anfänger und weiß somit auch nicht, wonach ich googeln soll. Falls es da eine einfache Lösung gibt, wäre ich für eine Hilfe dankbar.

    LG



  • unter windows gibt es eine funktion "GetFileTime" und unter linux würde mir jetzt spontan ls -al dateiname einfallen


  • Mod

    Du könntest ein Programm laufen lassen, dass alle X Sekunden den Zeitpunkt der letzten Modifikation einer Datei prüft ('last write time' in Windows-Sprech, 'last modification timestamp' in Unix-Sprech). Ändert dieser sich, dann startest du dein anderes Programm. Der bestgeeignetste Funktionsaufruf für letzteres hängt davon ab, was du genau möchtest. system ist plattformunabhängig, aber recht eingeschränkt. Winexec, ShellExecute, und CreateProcess bieten jeweils immer mehr Feinkontrolle, sind aber auch jeweils komplexer zu nutzen. In Linux gibt es ähnliche Abstufungen: execve, popen, fork-exec.


  • Mod

    Wade1234 schrieb:

    unter linux würde mir jetzt spontan ls -al dateiname einfallen

    Bitte nicht. ls ist ein Programm für menschliche Nutzer, nicht zur programmatischen Auswertung. stat ist die erste Anlaufstelle, wenn es um alle Arten von Dateiattributen geht. Gibt es in sehr ähnlicher Form (_stat) auch für Windows.

    Falls stat und system ausreicht, kann man das Programm sogar fast unverändert für beide Betriebssysteme nehmen.



  • Das gibt es alles schon fertig: Obtaining directory change notifications.



  • Unter Linux würde man inotify verwenden.



  • Für einen Anfänger wird periodisch abfragen auf jeden Fall die einfachere Variante sein als vergleichsweise komplizierte APIs zu verwenden die noch dazu für die beiden Betriebssysteme unterschiedlich sind.

    Grundsätzlich ist der Hinweis dass es da etwas fertiges gibt gut. Für den OP wird es aber mMn. hier und heute nicht sinnvoll sein diese zu verwenden.



  • SeppJ schrieb:

    stat ist die erste Anlaufstelle, wenn es um alle Arten von Dateiattributen geht.

    jetzt wo du es sagst. ich habe es bei mir sogar verwendet, um die dateigröße zu ermitteln. allerdings stat64, weil stat nur für dateien bis 2gb funktioniert.


Anmelden zum Antworten