|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
[JAVA] monitorare files
Salve a tutti,
è possibile monitorare file tramite un'applicazione java?? avevo pensato ad un'applicazione tipo daemon che ogni tot mi rilegge completamente il file e lo confronta con quello che tiene in memoria....purtroppo però non mi sembra così efficiente....soprattutto se i file da monitorare sono di una certa dimensione. la cosa a cui tengo cmq è che mi controlli le differenze a determinati istanti di tempo, nel senso: - lancio il demone che carica il file in mem - controlla se sono avvenuti cambiamenti ogni tot secondi - salva differenze su file avete suggerimenti? grazie
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Apr 2006
Messaggi: 225
|
Calcolare l'impronta MD5 del file dovrebbe essere più veloce che fare il confronto byte per byte.
Io l'ho usato con tutt'altro scopo ma dovrebbe venirti bene, sfortunatamente non ho esempi da darti |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
sì però io vorrei tenere sempre (instantaneamente) traccia delle modifiche effettuate.
mi spiego meglio...vorrei (se possibile) che l'applicazione mi dicesse: "Guarda che il tuo file è stato appena cambiato ai byte x, y e z".... ringrazio per la risposta
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Il sistema operativo ha a disposizione quelli che sono i FileSystemWatcher, ovvero classi che ti avvisano quando e' successo qualcosa negli oggetti che conti di monitorare. I FileSystemwatcher sono integrati e diposnibili nel framework per i linguaggi .net, non so se c'e' l'analogo in Java. Sicuramente il "traffico" si alleggerirebbe.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Apr 2006
Messaggi: 225
|
Da quel che ho letto, in 5 min scarsi, non esiste un corrispettivo java dei FileSystemWatcher poiché su sistemi unix non funzionerebbero alcuni casi; ovviamente una ricerca più approfondita potrebbe smentire quanto da me detto
La mia proposta era di verificare, tramite calcolo dell'impronta MD5, se il file era modificato e solo successivamente fare il confronto byte per byte in modo da ottimizzare i tempi |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
quindi a quanto ho capito potrei cmq fare una chiamata tramite jni ad una funzione che mi avverte ad ogni cambiamento di file giusto????
se è così sarebbe perfetto (portabilità a parte, ma me ne frego perchè è una cosa che serve a me mi potreste fare un esempio di FileSystemWatcher oppure suggerirmi qualche link?
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Penso che TuX2K6 intendesse che in Java non ha trovato librerie gia' fatte per il FileSystemWatcher di Windows. Il concetto comunque sarebbe leggermente diverso. E' il fileSystemWatcher che chiama una tua funzione ogni volta che l'oggetto da monitorare cambia. Non so suggerirti alcun link per il Java. Per il C# invece puoi leggere qui: http://msdn2.microsoft.com/en-us/lib...emwatcher.aspx Quando il (o i) file che stai monitorando viene cambiato, allora viene chiamato la funzione Change, dentro cui puoi scrivere il codice che ti serve. Ovviamente dovrai risolvere altri problemi, come p.es. non potrai avere accesso a quel file fintantoche' e' in scrittura da parte del processo che ha effettuato il cambiamento. Ma la strada per evitare il polling del filesystem e' questa.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
![]()
__________________
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Gia' visto eh?
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:51.





















