Frage

Ich möchte wissen, wenn eine neue Datei auf einem bestimmten Verzeichnis erstellt wird, anstatt das Verzeichnis von Zeit zu Zeit des Abtastens.

Ich verstehe, dass es eine Möglichkeit ist das Betriebssystem sagen, meinem Programm, das eine neue Datei erstellt wurde zu machen. Wie funktioniert es?

Wie bereits erwähnt, hat diese Ähnlichkeiten mit Wie benachrichtigt Datei werden / Verzeichnisänderung in C / C ++, idealerweise unter Verwendung von POSIX

War es hilfreich?

Lösung

ist abhängig vom Betriebssystem.

Unter Windows würde die Basis API Verzeichnis ändern Benachrichtigungen .

Da Sie Linux in den Tags erwähnen, wäre dies der inotify API sein.

auf die OS X Antwort hinzuzufügen, wie von 10.5, möchten Sie die FSEvents API .

Andere Tipps

Unter Linux Besuche Inotify .

Wie sein benachrichtigte die Datei / Verzeichnisänderung in C / C ++, idealerweise mit POSIX

oder nach inotify in Stackoverflow Sie viele Ideen bekommen

FAM bietet eine konsistente Datei-Watching-Schnittstelle über alle UNIX-Varianten. Unter Linux kann das Back-End-Daemon von Gamin ersetzt werden, sondern ein Programm verknüpft mit FAM wird mit Gamin gut funktionieren. (Hinter den Kulissen FAM kann unter Verwendung von Polling sein und Gamin können unter Verwendung von inotify oder dnotify oder kqueue, aber Sie sollten nicht über die Umsetzung zu kümmern.)

OS X.5 hat FSEvents , das ist sehr unterschiedlich, dass sie überwacht das gesamte System statt angegebenen Dateien und Verzeichnisse, sondern auch Ihre Bedürfnisse befriedigen.

Unter Windows finden Sie unter finden (Erste | Weiter | Close) ChangeNotification oder ReadDirectoryChanges .

Filesystemwatcher ist die Antwort - und es funktioniert rekursiv

.

Es ist ein Beispiel hier (Suche nach Filesystemwatcher)

Mit Mac OS X, diese Funktionalität Teil des Spotlight-API ist.

Mit .NET unter Windows (nicht sicher über Linux / Mono) können Sie einen FileSsytemWatcher verwenden können für neue Dateien zu beobachten und Ereignisse auslösen, wenn sie erstellt werden.

Von MSDN:

  

Verwenden von Filesystemwatcher zu sehen für   Änderungen in einem bestimmten Verzeichnis. Sie   für Änderungen in Dateien anschauen kann und   Unterverzeichnisse des angegebenen   Verzeichnis. Sie können eine Komponente erstellen   zu sehen Dateien auf einem lokalen Computer, einen   Netzlaufwerk oder ein Remote-Computer.

MSDN Seite

Die Windows-API bietet die Möglichkeit zur Überwachung des Dateisystems - es gibt hier ein Beispiel http://msdn.microsoft.com/en-us/library/aa365261%28VS.85%29.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top