我正在使用Apache Commons VFS2(虚拟文件系统(来监视目录中的更改文件。 org.apache.commons.vfs2.FileListener
返回org.apache.commons.vfs2.FileObject
.如何将org.apache.commons.vfs2.FileObject
转换为java.io.File
fileobject.getURL().getFile()
应该工作。需要注意的是,我们需要首先将其转换为Java URL对象,然后可以使用该对象来解析文件。
new File(fileobject.getName().getPath());
请注意,VFS 文件对象不一定引用实际文件,例如,它也可以引用 zip 文件中的文件。取决于用于获取文件对象的解析程序。
其他参考资料:
- [VFS-443] 需要一种从文件对象转换为文件的简单方法 - ASF JIRA。
org.apache.commons.vfs2.FileObject
是一个接口。我的猜测是,您正在使用以下实现org.apache.commons.vfs2.provider.local.LocalFile
此类提供返回类getLocalFile()
对象的方法java.io.File
如果您不处理LocalFile
大多数其他实现都提供了可用于创建 File 对象的doGetInputStream()