Discord JDA 保存邮件中包含的文件附件
Posted
技术标签:
【中文标题】Discord JDA 保存邮件中包含的文件附件【英文标题】:Discord JDA Save a file attachment that was included in a message 【发布时间】:2021-04-09 19:03:40 【问题描述】:代码如下:
package volmbot.commands;
import lombok.SneakyThrows;
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
public class SandBox extends ListenerAdapter
@SneakyThrows
public void onGuildMessageReceived(GuildMessageReceivedEvent e)
String[] args = e.getMessage().getContentRaw().split(" ");
e.getMessage().getAttachments();
String authId = e.getMessage().getAuthor().getId();
//Grab file and save it as the user's ID
FileOutputStream saveFile = new FileOutputStream(authId + ".txt");
ObjectOutputStream save = new ObjectOutputStream(saveFile);
save.writeObject(e.getMessage().getAttachments());
save.close();
我的目标是做到以下几点:
保存用户在邮件中发送的文件(如果邮件有附件) 如果消息不包含消息则忽略它 保存到用户 ID 为id.txt
的文件
我尝试过使用 Filestream,但我可能做错了什么。 假设它有附件,我将如何管理如此抓取邮件附件,然后保存文件?
【问题讨论】:
【参考方案1】:你可以使用downloadToFile(name):
List<Message.Attachment> attachments = event.getMessage().getAttachments();
if (attachments.isEmpty()) return; // no attachments on the message!
CompletableFuture<File> future = attachments.get(0).downloadToFile(authId + ".txt");
future.exceptionally(error -> // handle possible errors
error.printStackTrace();
return null;
);
【讨论】:
以上是关于Discord JDA 保存邮件中包含的文件附件的主要内容,如果未能解决你的问题,请参考以下文章
试图理解 Java 中的时间戳(Discord JDA 和 Mongodb)
快速从电子邮件中获取 plist 附件(NS Cocoa 错误域代码 260)