将FileObject转换为文件

时间:2013-08-28 09:31:36

标签: java io apache-commons-vfs

我正在使用Apache Commons VFS2(虚拟文件系统)来监控目录中的更改文件。 org.apache.commons.vfs2.FileListener返回org.apache.commons.vfs2.FileObject。如何将org.apache.commons.vfs2.FileObject转换为java.io.File

3 个答案:

答案 0 :(得分:4)

fileobject.getURL().getFile()

应该有效。需要注意的是,我们需要先将其转换为Java URL对象,然后可以使用它来解析文件。

答案 1 :(得分:1)

您可以使用

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

请注意,VFS文件对象不一定引用真实文件,也可以引用zip文件中的文件。取决于您用于获取文件对象的解析器。

其他参考资料:

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

答案 2 :(得分:0)

org.apache.commons.vfs2.FileObject是一个界面。 我的猜测是,您正在使用以下实现org.apache.commons.vfs2.provider.local.LocalFile

此类提供方法getLocalFile(),它返回类java.io.File

的对象

如果您没有处理LocalFile大多数可用于创建File对象的其他实现商品doGetInputStream()