如何確定缺失後綴名的文件的類型?
03-05
對於圖片文件,似乎哪個後綴名都能正常打開,但是如何確定其真真的後綴呢?
文件名通常包括主文件名和後綴名兩部分,它是為了方便讓人類理解文件的內容和類型而存在的。
事實上,有一個東西叫做魔法數字(Magic Number,簡稱「魔數」)[1]。它是某一類型的文件的頭一個或幾個位元組的內容。計算機可以根據它的值判斷文件的類型(即使文件的後綴名被錯誤地更改過)。
例如,jpg 文件的魔法數字的十六進位形式是 ff d8 ff e0;而 gif 文件的魔法數字的十六進位形式是 47 49 46 38。
你可以用十六進位編輯器打開圖片文件,然後對照魔法數字表來確定文件類型。
這裡列出了一些文件類型的魔法數字[2]。
---------------------[1]魔法數字:http://en.wikipedia.org/wiki/Magic_number_(programming)[2]http://www.astro.keele.ac.uk/oldusers/rno/Computing/File_magic.html請用linux的file命令查看。
我給一個低端簡單點但沒那麼準確的方法吧可以用TrIDNetTridNet下載地址:http://mark0.net/download/trid_net.zip
Trid XML定義包下載地址:http://mark0.net/download/triddefs_xml.rar
XML是文件類型的定義包
下完兩個解壓到同一個目錄
運行TrIDNet,點擊"browse" 找到需要識別的文件,也可以直接把需要識別的文件拖入到TrIDNet它會給出有可能的文件類型及概率如 jpg 80% gif 20%用文本的方式打開,或者先打開記事本.txt然後將文件拖進去,開頭的某幾個連續英文字母(一般是三個左右的大寫的)就是後綴名了,
// 以下是王八的屁股
// 後綴擴展名// 文本方式打開後開頭內容 或 在內內必有的內容// + : 有這個 和 這個 和 這個 和 這個 和 這個 和 這個 和 這個 和 這個 和 這個 和 這個.exe的:
MZ? + This program cannot be run in DOS mode.。jpg的:
JFIF Or Exif。png:
NG。zip:
PK+文件列表名+This program cannot be run in DOS mode.。gif:
GIF……。txt:
你認識的字。html
帶有&<&>的。pdf:
%PDF……。rar:
Rar!。doc:
邢 + 大段空白內容。docx
PK+[Content_Types].xml 。7z7z
。avi
AVI。chm
ITSF+/css+/images/+htm.mp3
ID3 Or uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu x n------
貌似常用的也就是這麼多了,
不過是要純粹為了能打開的話,1個看圖王去廣告版(新版可能不會每次打開就彈了,可能吧),1個好壓v4.4永不升級版(不喜歡拍扁的圖標就搜這個,其他版本你開心就好),1個Potplayer,聽歌+視(avi)頻都解決了。-----------------------
備註:文件太大拖進去卡死的話 說明你該把Notepad記事本換掉了,比如在最後加個2的怎麼樣,或者換成++或者菜單選項超級多多多多的UE查看全文
可以下載一個文件類型分析器啊
請問有誰研究過文件類型分析器的演算法么,它是通過什麼演算法來識別文件類型的,最好有詳細的演算法說明和代碼
推薦閱讀:
※為什麼同一目錄下面不能存在兩個文件名相同的文件?
※如何打開mobi為後綴的文件?
※【Excel技巧】- 快速比較兩個工作簿,微軟隱藏的那麼深
※文件永久刪除文件如何找回