Ich entwickle eine Anwendung in Cocoa. Ich möchte ständig überprüfen, ob der Inhalt einer Datei an einem bestimmten Ort geändert wird oder nicht (wie FileSystemWatcher
in. NET). Bitte geben Sie mir eine LösungEquivalent von FileSystemWatcher (.NET) in Cocoa
Antwort
Bitte sehen Sie sich FSEvents.
Wie Diederik sagt, ist FSEvents Apples Carbon API für das Abhören von Dateisystemereignissen. Jemand hat einen Cocoa/Objective-C-Wrapper für FSEvents namens SCEvents erstellt, der etwas einfacher zu verwenden ist.
Als eine pedantische beiseite ist FSEvents keine Carbon API; Es ist Teil des Core Services-Frameworks. – briankc
FSEvents sind großartig, aber sie werden verwendet, um Ordner zu überwachen. Um eine einzelne Datei zu überwachen, sollten Sie kqueues auschecken. Versuchen Sie "Mann kqueue" im Terminal.
SCEvents ist die bessere Option für jemanden, der nach einer Cocoa-Lösung sucht. –
FSEvents sind jedoch immer noch für Verzeichnisänderungen und es klingt wie SCEvents ist ein Wrapper für FSEvents. Die Frage wird gestellt, um eine einzelne Datei zu überwachen. Kqueues sind dafür viel besser geeignet. Der Link zu SCEvents oben verweist auch auf UKKQueue, was auch ein guter Wrapper sein könnte. –
Eine andere Option wäre, direkt aus dem/dev/fsevents Firehose zu trinken. Ich arbeite an einer Anwendung, die genau das tut und es funktioniert sehr gut. Sie können benachrichtigt werden, wenn sich eine Datei ändert, gelöscht wird, verschoben wird, Attribute geändert wurden usw. Zugegeben, dies ist keine "Cocoa" -Option, da es hauptsächlich C-Code ist, aber wir verwenden dies in einer Cocoa-App.
Eine weitere Ressource auf kqueues ist http://developer.apple.com/documentation/Darwin/Conceptual/FSEvents_ProgGuide/KernelQueues/KernelQueues.html
Blick auf die NSWorkspace Klasse Dokumentation.
Hier ist ein Beispiel, wie man es mit Lesezeichen und NSFileManager macht, so dass Sie die Datei verfolgen können, wenn sie verschoben wird.
- 1. Was ist .NET-Equivalent von InterruptedException (Java)?
- 2. .NET IoC - Equivalent Code für .NET Unity
- 3. FileSystemWatcher
- 4. CouchDB - .NET oder Mono Equivalent Technology
- 5. erben von FileSystemWatcher
- 6. Equivalent von eval() in Groovy
- 7. Javascript Equivalent von Jquery
- 8. FileSystemWatcher für FTP
- 9. Falsches Verhalten von FileSystemWatcher mit Samba
- 10. FileSystemWatcher ArgumentException
- 11. Django 1.2 Equivalent von QuerySet.query.as_sql()
- 12. Equivalent von Firebug für Thunderbird
- 13. Equivalent von org.apache.axis.components.net.SunFakeTrustSocketFactory für wsimport
- 14. Equivalent von Ruby Hash in Java
- 15. Equivalent-Code von CreateObject in C#
- 16. Equivalent von nameList.add (name) in recylerview
- 17. Equivalent von NotImplementedError für Felder in Python
- 18. Equivalent von __FUNC__ oder __FUNCTION__ in Rust?
- 19. Equivalent von Swing's Paket in C#
- 20. Equivalent von NCrunch für Java in Eclipse
- 21. Equivalent von url() Hilfsfunktion in Zend Controller
- 22. Filesystemwatcher auf Themen
- 23. Equivalent von Debug.Assert für SQL Server
- 24. Zugriff auf Localapplicationdata Equivalent in Delphi
- 25. Equivalent urllib.parse.quote() in Python 2.7
- 26. LINQs SelectMany Equivalent in OData
- 27. FileSystemWatcher XML VB.Net
- 28. TrimEnd Equivalent in SQL Server
- 29. uniqueidentifier Equivalent DataType In C#
- 30. Equivalent curl Anfrage in php
Nur ein Vorschlag: „Gib mir eine Lösung“ könnte so kommen aus leicht abrasiven auf Englisch interpretiert werden, und bedeutet auch, dass Sie nicht auf eine Antwort für sich selbst ausgesehen haben könnte. Es ist eine gute Form für Google, bevor Sie eine Frage stellen. :-) –