获取真正的文件扩展名-Java代码

出于安全原因,我想确定真正的文件扩展名。

我怎样才能做到这一点?

假设你真的想要获得文件的真实内容类型(即它的MIME类型),你应该参考这个优秀的答案 。

您可以使用以下代码获取Java中文件的真实内容类型:

File file = new File("filename.asgdsag"); InputStream is = new BufferedInputStream(new FileInputStream(file)); String mimeType = URLConnection.guessContentTypeFromStream(is); 

您可以通过多种方式实现此目标,其中一些方法比其他方法更复杂(也更可靠)。 我链接的页面讨论了其中的一些方法。

不确定你究竟是什么意思,但是你这样做它只适用于你已知的特定文件格式集

你可以排除可执行文件(你在这里说Windows吗?) – 这里有一些文件头信息http://support.microsoft.com/kb/65122 – 你可以扫描和阻止看起来像他们有一个exe头的文件 – 这是当你说’真正的文件扩展名’时,接近你的意思?