Question

Je veux savoir quand un nouveau fichier est créé dans un répertoire spécifique, au lieu de le scanner de temps en temps.

Je comprends qu'il existe un moyen de faire en sorte que le système d'exploitation indique à mon programme qu'un nouveau fichier a été créé. Comment ça marche?

Comme indiqué, cela présente des similitudes avec Comment être averti du fichier / changement de répertoire en C / C ++, idéalement avec POSIX

Était-ce utile?

La solution

Dépend de quel système d'exploitation.

Sous Windows, l'API de base serait Modification du répertoire. Notifications .

Puisque vous mentionnez Linux dans les balises, il s'agit de l'API inotify .

Pour ajouter à la réponse OS X, à partir de 10.5, vous souhaitez que le FSEvents API .

Autres conseils

Sous Linux, consultez Inotify .

Comment être notifié du changement de fichier / répertoire en C / C ++, idéalement avec POSIX

ou recherchez inotify dans stackoverflow, vous obtiendrez de nombreuses idées

FAM fournit une interface de visionnage des fichiers cohérente pour tous les systèmes UNIX. Sous Linux, le démon back-end peut être remplacé par Gamin , mais un programme est lié à avec FAM travaillera avec Gamin très bien. (En coulisse, FAM peut utiliser polling, et Gamin peut utiliser inotify, dnotify ou kqueue, mais vous ne devriez pas avoir à vous soucier de la mise en œuvre.)

OS X.5 contient FSEvents , ce qui est très différent du fait qu’il surveille l’ensemble du système au lieu des fichiers et des répertoires spécifiés, mais répondrait également à vos besoins.

Sous Windows, voir Rechercher (Premier | Suivant | Fermer) ChangeNotification ou ReadDirectoryChanges .

FileSystemWatcher est la solution - et cela fonctionne de manière récursive.

Il existe un exemple ici (recherchez FileSystemWatcher)

.

Sous Mac OS X, cette fonctionnalité fait partie de l'API Spotlight.

Si vous utilisez .Net sous Windows (vous ne savez pas si Linux / mono), vous pouvez utiliser FileSsytemWatcher pour surveiller les nouveaux fichiers et générer des événements lors de leur création.

À partir de MSDN:

  

Utilisez FileSystemWatcher pour surveiller   modifications dans un répertoire spécifié. Vous   peut surveiller les modifications dans les fichiers et   sous-répertoires du spécifié   annuaire. Vous pouvez créer un composant   regarder des fichiers sur un ordinateur local, un   lecteur réseau ou un ordinateur distant.

Page MSDN

L'API Windows fournit des fonctionnalités pour la surveillance du système de fichiers. Voici un exemple http://msdn.microsoft.com/en-us/library/aa365261%28VS.85%29.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top