繁体   English   中英

如何识别文件的原始文件扩展名或模仿类型

[英]How to identify the original file extensions or mimetype of a file

.exe文件可能会重命名为.txt文件,以绕过任何文件类型验证。 我正在寻找一种通过读取文件头而不使用urlmon.dll之类的dll来查找实际文件类型的方法。

MimeMapping.GetMimeMapping不能解决问题,它只是基于扩展名提取mime类型。

是否有字典说什么字节组合至少代表非常常见的文件类型,例如txt,doc,docx,pdf,xls或xlsx,exe等?

我认为您已经回答了自己的问题。

这有点泡菜。 阅读文件头签名,并查看其是否与扩展名匹配。 使用FileStream或类似的东西。

将此与Tommy DDD的答案结合起来,我想您就定了。

这不是最优雅的解决方案,但请查看此答案。 如何确定文件是C#中的二进制文件还是文本文件? 您可以psudo检查文件是二进制文件还是文本文件。

在注释中,有人连续检查4个零字节。 \\ 0 \\ 0 \\ 0 \\ 0倾向于指示二进制文件,因为我们不经常输入NULL字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM