11

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

4

3 回答 3

5
fileobject.getURL().getFile()

应该管用。需要注意的是,我们需要先将其转换为 Java URL 对象,然后才能使用该对象来解析文件。

于 2013-11-04T21:28:53.207 回答
1

您可以使用

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

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

附加参考:

  1. [VFS-443] 需要一种从 FileObject 转换为 File 的简单方法 - ASF JIRA
于 2013-08-28T09:34:43.583 回答
0

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

此类提供getLocalFile()返回类对象的方法java.io.File

如果您不处理可用于创建 File 对象的LocalFile大多数其他实现提供doGetInputStream()

于 2013-08-28T09:38:27.907 回答