Equivalente di FileSystemWatcher (NET) in Cocoa
-
21-08-2019 - |
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
Soluzione
Si prega di dare un'occhiata al FSEvents .
Altri suggerimenti
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.
Un ulteriore risorsa sul kqueues è http: // sviluppatore .apple.com / documentazione / Darwin / concettuale / FSEvents_ProgGuide / KernelQueues / KernelQueues.html