Domanda

Ho un tasto che voglio disabilitare finché non c'è un numero specifico di file in una directory. C'è una sorta di ascoltatore che mi informa in questo momento un file viene creato o eliminato in una directory?

È stato utile?

Soluzione

Non c'è corrente supporto nativo in Java per eventi e il monitoraggio del file system. JNotify è una libreria utile per fare questo. Si dovrebbe impostare fino a monitorare la directory per le modifiche, e quindi determinare da soli ciò che è stato aggiunto / rimosso.

Java 7 avrà il supporto del file system evento incorporata in essa .

Altri suggerimenti

Una cosa che si potrebbe prendere in considerazione - Se si sta ascoltando per eventi di creazione Allora ti vuole fare in modo che il file è completamente scritto prima di iniziare a leggerlo. Non sono sicuro di che tipo di supporto Java 7 offrirà per questo problema.

Ho implementato meccanismi di questo tipo in passato e questo particolare problema richiesto un trattamento speciale. Se si controlla sia il lettore e scrittore di file quindi è possibile aggirare il problema con le convenzioni di denominazione, ecc (i nomi scrittore file xxx.prt e rinomina il file quando è fatto in fase di scrittura). Dal momento che non ho avuto il controllo dello scrittore ho dovuto aggiungere un altro meccanismo di polling per verificare la dimensione del file su un intervallo per assicurarsi che ogni nuovo file era in realtà pronto per essere letto. Non una soluzione perfetta, ma era sufficiente per il mio caso.

I miei due centesimi ...

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