使用Guava 19.0,有没有办法将文件扩展名映射到MediaType?

Pat*_*ian 2 java media file guava

我有一个完整的文件路径,并希望确定它对应的MediaType(Google的Guava 19.0).我认为在MediaType中会有一个内置函数来实现这一点但我在实验和阅读MediaType API之后并不这么认为.

我知道我可以通过编写一个巨大的开关来基于文件扩展名返回MediaType来实现这一点,但如果我不必这样做,我宁愿不这样做.

有没有一种简单的方法可以实现这一目标,或者只是选择开关?谢谢 - 非常赞赏!

Col*_*inD 8

处理此问题的一种方法是使用Files.probeContentType(Path)(JDK 7)尝试获取内容类型.如果返回非null,您可以使用MediaType.parse(String)它来获取它 MediaType.但请记住,这probeContentType完全取决于已安装的FileTypeDetectors(如果有)的行为.