如何在c#中没有扩展名的情况下检查文件类型

如何在c#中没有扩展名的情况下检查文件类型

例如,我有没有扩展名的文件,它们是.mp4或.flv格式(只是没有扩展名)。 我计划将这些video文件转换为音频文件,但我想在开始转换之前确定文件类型。 有没有办法在C#中做到这一点?

我想也许我可以将文件重命名为name.mp4,然后在文件上执行一些任务,A)成功,意味着文件确实是.mp4,或者B)失败,在这种情况下我可以将其重命名为.flv

然后将文件转换为适当的扩展名。 c#中是否存在可以查看.mp4属性或.flv属性的本机进程? 我不想将文件重命名为.mp4,然后在第三方应用程序(如Windows Media Player)中打开它,以查看我是否正确命名。

我听说过读取文件内容的前几个字节,并对文件的格式进行了有根据的猜测。 这个链接似乎有希望:

使用.NET,如何根据文件签名而不是扩展名找到文件的mime类型

我玩过这个实用程序( TrID – 文件标识符 ),看起来非常准确。 文件类型定义包(TrIDDefs)也是最新的。

如果您感兴趣, 这里是文件类型签名表的列表。 该清单正在继续进行中。