2013-08-28 5 views
9

私はApache Commons VFS2(Virtual File System)を使ってディレクトリの変更ファイルを監視しています。 org.apache.commons.vfs2.FileListener返信org.apache.commons.vfs2.FileObject。あなたはVFSファイルオブジェクトは必ずしも実際のファイルを参照していないことFileObjectをファイルに変換する

new File(fileobject.getName().getPath()); 

注意を使用することができますどのようjava.io.File

+0

これは単なるインターフェイスです。どのような実装を使用していますか? –

+0

FileListenerを意味する場合、すべてのメソッドがFileObject –

+0

を返します。 FileObjectはインターフェイスです。どのような具体的な実装が返されているか把握してください。 –

答えて

2

org.apache.commons.vfs2.FileObjectを変換し、それはまた、例えば、zipファイル内のファイルを参照することができます。ファイルオブジェクトを取得するために使用したリゾルバによって異なります。

その他の参照:

  1. [VFS-443] Need an easy way to convert from a FileObject to a File - ASF JIRA
+0

FileObjectがzipのファイルを表す場合、これはうまくいかないと思います。 –

+0

これは動作しません – doanduyhai

+0

特にWindowsでは、ボリューム上のパスのみを返し、マシン上のパスは戻さないためです。 – Riduidel

0

org.apache.commons.vfs2.FileObjectがインタフェースです。 私の推測では、次の実装このクラスはjava.io.File

あなたが他の実装のLocalFileほとんど扱っていない場合は、提供したクラスのオブジェクトを返すメソッドgetLocalFile()を提供していますorg.apache.commons.vfs2.provider.local.LocalFile

で作業していること、ですファイルオブジェクトの作成に使用できるdoGetInputStream()

+1

'getLocalFile()'は(javadocが示すように)不幸にも保護されているため、使用できなくなります。 – Riduidel

+0

それは本当です!それを見ていない。それを指摘してくれてありがとう –

4
fileobject.getURL().getFile() 

が有効です。注意点は、最初にJava URLオブジェクトに変換してから、ファイルを解決する必要があることです。

関連する問題