Sto cercando di verificare se un certo file java.io.p è aperto da un programma esterno. Su Windows Io uso questo semplice trucco:Come verificare se un file è aperto da un altro processo (Java/Linux)?
try {
FileOutputStream fos = new FileOutputStream(file);
// -> file was closed
} catch(IOException e) {
// -> file still open
}
So che i sistemi basati su UNIX consentono di aprire i file in più processi ... C'è un trucco simile per ottenere lo stesso risultato per i sistemi basati su UNIX?
Qualsiasi aiuto/modifico molto apprezzato :-)
hai assolutamente ragione ... ma ho bisogno di questa funzionalità per monitorare lo stato del file (cosa che faccio con WatchServices in Java 7). ma devo anche rilevare quando un determinato file viene chiuso di nuovo per sbloccarlo, in modo che altri utenti possano modificarlo nuovamente. – salocinx
Puoi chiamare a 'lsof'? – tchrist
Questa è la prossima cosa che cercherò di fare. lsof sembra esistere su numerose distribuzioni Linux. L'apertura di un nuovo processo con lsof e la lettura dello standard output faranno il loro lavoro. Presenterò la mia soluzione domani in questo thread. grazie mille! – salocinx