我见过一些方法通过检查二进制结构来检查 PEFile 是否是 .NET 程序集 http://www.anastasiosyal.com/archive/2007/04/17/3.aspx.
这是测试多个文件最快的方法吗?我假设尝试加载每个文件(例如通过Assembly.ReflectionOnlyLoad http://msdn.microsoft.com/en-us/library/0et80c7k(VS.80).aspx)文件可能会非常慢,因为它将加载文件类型信息。
注意:我正在寻找一种以编程方式检查文件的方法。
我想 Stormenet 的答案在技术上并不重要程序化的,所以我将把我的回应分成一个答案。
为了获得最佳性能,没有什么比使用StreamReader
,读取前 (n) 个字节并检查字节流中的 .NET 文件签名数据结构。
与验证某个东西是否为 DOS 可执行文件的方式几乎相同:
http://en.wikipedia.org/wiki/DOS_executable http://en.wikipedia.org/wiki/DOS_executable
寻找“MZ”头字节,这也恰好是 MS-DOS 开发者之一 Mark Zbikowski 的名字缩写。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)