我正在使用一个虚拟文件系统,并且我想从它附加一个文件到电子邮件。但是,MimeBodyPart对象只接收文件,这些文件不适用于像jimfs这样的默认文件系统。看到我的代码如下,当我尝试转换为文件时,出现UnsupportedOperation异常。java从虚拟文件系统附加文件到电子邮件
public Email attach(Path file){
MimeBodyPart attachment = new MimeBodyPart()
attachment.attachFile(file.toFile())
attachments.add(attachment)
return this
}
您使用的是什么版本的API?将不支持的操作发生在将文件附加到不支持虚拟文件系统的MimeBodyPart或File.toFile()上? –
file.toFile()调用抛出不支持的异常,因为jimfsPath没有实现该方法。我正在使用java 8.据我所知,MimeBodyPart只知道如何与文件交互,而不是Path对象。 – Steve
好所以如果我理解你正确,你需要使用jimfs API,将文件写入文件系统,然后附加到MimeBodyPart类。高级方法是“扩展”文件并覆盖允许从jimfs动态传输内容的方法。不过,我会先坚持简单的方法。 –