ファイルタイプを取得したいのですが、ファイルはC#、Asp.netの拡張子に注意しています。
ダウンロードしたファイルからファイルタイプを取得したいwebClient.DownloadFile
。
ファイルをトレースできますか?
ダウンロードしたファイルがPDFかどうかわかりますか?
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).";
同じ質問がされているリンクがいくつかあります。役立つことを願っています
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
拡張子のないファイルのファイル タイプを取得する絶対的な方法はありません。
EXE などの一部のファイル タイプには、確認できるヘッダーがあります。テキスト ファイルなどの他のファイルは、テキスト文字のみを検索する何らかのヒューリスティックを使用して検出している可能性があります。しかし、それでも他のファイルは識別できません。
事前に拡張子を知っていれば可能ですが、それ以外の場合は、ファイルの構造に精通している必要があります。.pdf 拡張子のない pdf をダウンロードするだけの場合は、ダウンロード時にファイルの名前を [something].pdf に変更すると、通常の pdf としてアクセスできるようになります。