我想获取文件类型,但我的文件在 C#、Asp.net 中注明扩展名。
我想从下载的文件中获取文件类型webClient.DownloadFile
。
可以跟踪文件吗?
可以理解下载的文件是pdf还是不是?
没有绝对的方法可以获取没有扩展名的文件的文件类型。
某些文件类型(例如 EXE)具有您可以检查的标题。其他文件(例如文本文件)可能正在使用某种仅查找文本字符的启发式方法进行检测。但仍有其他文件无法识别。
只要您事先知道扩展名是可能的,否则您必须熟悉文件的结构。如果您正在做的只是下载没有 .pdf 扩展名的 pdf,请在下载时重命名您的文件 [something].pdf,这样您就可以将其作为常规 pdf 访问。
有一些链接提出了同样的问题。我希望它有帮助
https://superuser.com/questions/435224/how-do-i-find-out-the-file-type-without-an-extension
http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/16c34850-8799-4a8b-8702-2f59d96e79c1
http://www.troublefixers.com/open-files-without-any-valid-file-extension/
http://bytes.com/topic/c-sharp/answers/812692-open-file-without-knowing-extension
FileStream fs = new FileStream(@"c:\a.pdf", FileMode.Open, FileAccess.Read);
StreamReader r = new StreamReader(fs);
string pdfText = r.ReadToEnd();
Regex rx1 = new Regex(@"/Type\s*/Page[^s]");
MatchCollection matches = rx1.Matches(pdfText);
MessageBox.Show("The PDF file has " + matches.Count.ToString() + " page(s).";