【发布时间】:2018-10-05 05:03:39
【问题描述】:
有什么方法可以获取(实际上是猜测!)扩展文件? 在我的程序中,某处我得到一个文件,应用程序对其进行分析以了解它是 ZIP 还是 MOV。
我发现this,但它不支持MOV和ZIP。
更新:
通过创建一个包含文件签名前 8 位的文本文件。 和下面的代码,我可以确定每个没有扩展名的文件。 this 页面可能是一个很好的参考。
string rootPath = $"{name}";
using (FileStream fsSource = new FileStream(rootPath, FileMode.Open, FileAccess.Read))
{
byte[] fileBytes = new byte[8]; // the number of bytes you want to read
fsSource.Read(fileBytes, 0, 8);
/*
zip = 50-4B-03-04-0A-00-00-00
mov = 00-00-00-20-66-74-79-70
html = 3C-21-64-6F-63-74-79-70
rar 1 = 52-61-72-21-1A-07
rar 5 = 52-61-72-21-1A-07
*/
string filestring = BitConverter.ToString(fileBytes);
// string filestring = Encoding.UTF8.GetString(fileBytes);
File.WriteAllText($"{DownloadPath}\\filestring.txt", filestring);
}
【问题讨论】:
-
阅读这些文件格式。然后打开文件并检查结构以确定类型。
-
文件扩展名只是一些文本。你的意思是文件类型吗?
-
@Plutonix 是的,正是我的意思!
-
@Adriani6 这实际上并不少见,尤其是对于 Unix 中的文件或来自与 Unix 密切相关的程序的文件。
-
文件不必有扩展名。您可以检查其标题以确定其类型。 ZIP 和 MOV 等格式定义明确,您可以在 Internet 上找到它们的标头信息。