打开电子邮件附件时如何获取文件名和扩展名

Posted

技术标签:

【中文标题】打开电子邮件附件时如何获取文件名和扩展名【英文标题】:How to get filename and extension when opening email attachment 【发布时间】:2012-03-11 20:26:39 【问题描述】:

我创建了一个意图过滤器来将我的活动与自定义文件扩展名相关联。这可以正常工作:邮件应用程序启动我的活动以获取具有自定义扩展名的附件。

在活动中,我这样阅读意图:

Uri uri = getIntent().getData();

我可以打开一个输入流,但我想知道附件的文件名和扩展名。有什么方法可以从 Uri 获得这个?

我尝试通过光标获取此信息,但邮件应用程序似乎只有两列:_id 和 _data,与文件名和/或扩展名无关。

我知道我无法访问实际文件,但需要知道文件名。

【问题讨论】:

【参考方案1】:

如果您使用给定的 Uri 执行查询,则游标有 4 列:_id_data_display_name_size_display_name 是带扩展名的文件名。

来源:AOSP 电子邮件应用程序

AttachmentUtilities.Columns - 查询附件 Uri 时使用的列

AttachmentProvider - 附件提供程序实现

【讨论】:

以上是关于打开电子邮件附件时如何获取文件名和扩展名的主要内容,如果未能解决你的问题,请参考以下文章

如何通过亚马逊发送带有自定义文件扩展名附件的电子邮件?

iOS 在应用程序中打开附件。没有相应的文件和目录

如何获取电子邮件所有附件的文件名?

附件名称和文件扩展名在电子邮件 *.eml 中不起作用

如何使用 Python 从电子邮件内容中获取附加的 eml 文件?

如何从电子邮件中获取 csv 附件并保存