Sto usando Apache Commons VFS2 (Virtual File System) per monitorare il file di modifiche nella directory. org.apache.commons.vfs2.FileListener
restituisce org.apache.commons.vfs2.FileObject
. Come Convertire un org.apache.commons.vfs2.FileObject
in un java.io.File
Convertire un FileObject in un file
risposta
È possibile utilizzare
new File(fileobject.getName().getPath());
Si noti che un oggetto file VFS non fa riferimento necessariamente un vero e proprio file, può anche fare riferimento a un file all'interno di un file zip per esempio. Dipende dal risolutore utilizzato per ottenere un oggetto file.
Ulteriori riferimenti:
Non penso che funzionerà, se FileObject rappresenta un file in un file zip. –
Non funziona – doanduyhai
Soprattutto su Windows, poiché restituisce solo il percorso sul volume e non il percorso sulla macchina. – Riduidel
org.apache.commons.vfs2.FileObject
è un'interfaccia. La mia ipotesi è che si sta lavorando con la seguente implementazione org.apache.commons.vfs2.provider.local.LocalFile
Questa classe offre il metodo getLocalFile()
, che restituisce un oggetto della classe java.io.File
Se non si tratta di un LocalFile
la maggior parte delle altre implementazioni offrono doGetInputStream()
che può essere utilizzato per creare un oggetto File
'getLocalFile()' è sfortunatamente protetto (come indica javadoc) che lo rende inutilizzabile. – Riduidel
è vero! non l'ho visto Grazie per segnalarlo –
dovrebbe funzionare. L'avvertenza è che abbiamo bisogno di convertirlo prima in un oggetto URL Java, che può quindi essere utilizzato per risolvere il file.
questa è solo un'interfaccia. quale implementazione stai usando? –
Se si intende FileListener, tutti i metodi restituiscono FileObject –
no. FileObject è un'interfaccia. prova a capire quale implementazione concreta viene restituita. –