View Full Version : [JAVA] : accesso ai file ...
Salve,
ho il seguente problema :
Devo poter effettuare la copia di un file da una directory ad un'altra ma solo se il file originale è stato correttamente scritto ... MI spiego meglio :
DIrectory sorgente : /incoming (il file giunge a questa directory mediante ftp)
DIrectory destinazione : /outgoing
Appena rilevo la presenza del file in /incoming dovrei effettuarne la copia in /outgoing ma prima dovrei essere sicuro che la scrittura in incoming sia terminata ... altrimenti la copia sarebbe parziale ...
Avete qualche soluzione da proporre ???
Salve,
ho il seguente problema :
Devo poter effettuare la copia di un file da una directory ad un'altra ma solo se il file originale è stato correttamente scritto ... MI spiego meglio :
DIrectory sorgente : /incoming (il file giunge a questa directory mediante ftp)
DIrectory destinazione : /outgoing
Appena rilevo la presenza del file in /incoming dovrei effettuarne la copia in /outgoing ma prima dovrei essere sicuro che la scrittura in incoming sia terminata ... altrimenti la copia sarebbe parziale ...
Avete qualche soluzione da proporre ???
Spiegami se ho capito bene il problema: vuoi verificare che i file siano stati scritti correttamente in incoming da un altro processo (ftp) che tu non controlli prima di copiarli in outcoming... mi sembra difficile risolvere il problema con un altro processo, in Java o in un altro linguaggio.
Sto pensando ad un controllo di integrità (tipo CRC) oppure ad un sistema di "lock"... però va gestito dal sistema operativo, o dal processo che fa FTP...
Spiegami se ho capito bene il problema: vuoi verificare che i file siano stati scritti correttamente in incoming da un altro processo (ftp) che tu non controlli prima di copiarli in outcoming... mi sembra difficile risolvere il problema con un altro processo, in Java o in un altro linguaggio.
Sto pensando ad un controllo di integrità (tipo CRC) oppure ad un sistema di "lock"... però va gestito dal sistema operativo, o dal processo che fa FTP...
Hai capito perfettamente ... riguardo al controllo di integrità questo implica che io dovrei conoscere il codice CRC prima di riapplicare l'algoritmo al nuovo file e confrontarlo una volta terminato .... mmmm .... non mi convince tanto sta cosa ....
Dovresti fartelo calcolare dall'altro sistema (quello remoto che fa ftp sulla tua macchina)... e fartelo inviare PRIMA del file... non so se è possibile... :stordita:
Dovresti fartelo calcolare dall'altro sistema (quello remoto che fa ftp sulla tua macchina)... e fartelo inviare PRIMA del file... non so se è possibile... :stordita:
Eh no ... non posso ... l'altro sistema mi invia esclusivamente i file ...
Avevo pensato però anche se non mi piace come soluzione :
Controllo periodicamente, tipo ogni 10 secondi la dimensione del file : se nell'arco dei 10 secondi la sua dimensione non varia assumo che la sua scrittura sia completa ... credo che in questo modo anche se uno mi fa l'upload con un classico 56k spero che in 10 secondi almeno un byte mi arrivi ad indicarmi che la scrittura sta continuando ... oppure non so, esiste qualche client ftp che in automatico effettua il CRC o l'MD5 e mi fa l'upload sia del file che del controllo di integrità ?
Eh no ... non posso ... l'altro sistema mi invia esclusivamente i file ...
Avevo pensato però anche se non mi piace come soluzione :
Controllo periodicamente, tipo ogni 10 secondi la dimensione del file : se nell'arco dei 10 secondi la sua dimensione non varia assumo che la sua scrittura sia completa ... credo che in questo modo anche se uno mi fa l'upload con un classico 56k spero che in 10 secondi almeno un byte mi arrivi ad indicarmi che la scrittura sta continuando ... oppure non so, esiste qualche client ftp che in automatico effettua il CRC o l'MD5 e mi fa l'upload sia del file che del controllo di integrità ?
Magari puoi cercare di acquisire, se il sistema operativo specifico te lo permette, un lock esclusivo sul file. Guarda se il package java.nio fa al caso tuo, specialmente per quanto riguarda le classi FileChannel e FileLock.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.