Domanda

Sto sviluppando un'applicazione in Cocoa. Voglio controllare costantemente se il contenuto di un file in una particolare posizione è cambiata oppure no (come FileSystemWatcher in .NET). Si prega di qualcuno mi dia una soluzione

È stato utile?

Soluzione

Si prega di dare un'occhiata al FSEvents .

Altri suggerimenti

Come dice Diederik, FSEvents è API Carbon di apple per l'ascolto di file eventi di sistema. Qualcuno ha creato un involucro di cacao / Objective-C per FSEvents chiamato SCEvents che è un po ' più facile da usare.

Un'altra opzione sarebbe quella di bere direttamente dalla / dev / FSEvents firehose. Io lavoro su un'applicazione che fa esattamente questo e funziona molto bene. È possibile essere avvisati se un file viene modificato, viene eliminato, viene spostato, è cambiato attributi, ecc Certo, questa non è un'opzione "Cacao" dal momento che è in gran parte di codice C, ma stiamo usando questo in un'applicazione Cocoa.

FSEvents sono grandi, ma sono utilizzati per monitorare le cartelle. Per monitorare un singolo file ti consigliamo di controllare kqueues. Prova "uomo kqueue" nel terminale.

Guardate la documentazione relativa alla classe NSWorkspace.

Ecco un esempio di come farlo con i segnalibri e NSFileManager in modo da poter seguire il file se è spostato.

https://github.com/ptrsghr/FileWatcher

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top