文件格式(或文件類型)是指電腦為了存儲(chǔ)信息而使用的對(duì)信息的特殊編碼方式,是用于識(shí)別內(nèi)部?jī)?chǔ)存的資料。比如有的儲(chǔ)存圖片,有的儲(chǔ)存程序,有的儲(chǔ)存文字信息。每一類信息,都可以一種或多種文件格式保存在電腦存儲(chǔ)中。每一種文件格式通常會(huì)有一種或多種擴(kuò)展名可以用來識(shí)別,但也可能沒有擴(kuò)展名。擴(kuò)展名可以幫助應(yīng)用程序識(shí)別的文件格式。
對(duì)于硬盤機(jī)或任何電腦存儲(chǔ)來說,有效的信息只有0和1兩種。所以電腦必須設(shè)計(jì)有相應(yīng)的方式進(jìn)行信息-位元的轉(zhuǎn)換。對(duì)于不同的信息有不同的存儲(chǔ)格式。 [編輯本段]概述有些文件格式被設(shè)計(jì)用于存儲(chǔ)特殊的數(shù)據(jù),例如:圖像文件中的JPEG文件格式僅用于存儲(chǔ)靜態(tài)的圖像什么是文檔形式的文件,而GIF既可以存儲(chǔ)靜態(tài)圖像,也可以存儲(chǔ)簡(jiǎn)單動(dòng)畫; 格式則可以存儲(chǔ)多種不同的媒體類型。文本類的文件有:text文件一般僅存儲(chǔ)簡(jiǎn)單沒有格式的ASCII或的文本;HTML文件則可以存儲(chǔ)帶有格式的文本;PDF格式則可以存儲(chǔ)內(nèi)容豐富的,圖文并茂的文本。
同一個(gè)文件格式,用不同的程序處理可能產(chǎn)生截然不同的結(jié)果。例如Word 文件,用 Word觀看的時(shí)候,可以看到文本的內(nèi)容,而以無格式方式在音樂播放軟件中播放,產(chǎn)生的則是噪聲。一種文件格式對(duì)某些軟件會(huì)產(chǎn)生有意義的結(jié)果,對(duì)另一些軟件來看,就像是毫無用途的數(shù)字垃圾。 [編輯本段]規(guī)范許多文件格式都有公開的、不同程度規(guī)范或者建議的格式。這些規(guī)范或者建議描述了數(shù)據(jù)如何編碼,如何排列。有時(shí)也規(guī)定了是否需要特定的電腦程序讀取或處理。有兩種情況下,文件格式?jīng)]有公開。第一種情況是:開發(fā)者將文件格式視作商業(yè)秘密不愿公開;第二種情況是:開發(fā)者不愿或花去很少的時(shí)間用于規(guī)范文檔。
需要注意的是,使用不公開的文件格式可能會(huì)帶來額外的成本。要了解這類文件格式或者需要通過對(duì)獲得的文件進(jìn)行逆向工程,或者通過向開發(fā)者付費(fèi)來獲得文件的格式。第二種方式中往往還需要與開發(fā)者簽訂不擴(kuò)散協(xié)議。不論怎樣兩種方式都是費(fèi)時(shí),費(fèi)錢的。 [編輯本段]識(shí)別文件的類型從程序的角度來看,文件是數(shù)據(jù)流,文件系統(tǒng)為每一種文件格式規(guī)定了訪問的方法。例如:元數(shù)據(jù)。不同的操作系統(tǒng)都習(xí)慣性的采用各自的方式解決這個(gè)問題,每種方式都有各自的優(yōu)缺點(diǎn)。
當(dāng)然,現(xiàn)代的操作系統(tǒng)和應(yīng)用程序,一般都需要這里所講述的方法處理不同的文件。 [編輯本段]擴(kuò)展名用擴(kuò)展名識(shí)別文件格式的方式最先在數(shù)字設(shè)備公司的CP/M操作系統(tǒng)被采用。而后又被DOS和操作系統(tǒng)采用。擴(kuò)展名是指文件名中,最后一個(gè)點(diǎn)(.)號(hào)后的字母序列。例如,HTML文件通過.htm或.html擴(kuò)展名識(shí)別;GIF圖形文件用.gif擴(kuò)展名識(shí)別。在早期的FAT文件系統(tǒng)中,擴(kuò)展名限制只能是三個(gè)字符,因此盡管現(xiàn)在絕大多數(shù)的操作系統(tǒng)已不再有此限制,許多文件格式至今仍然采用三個(gè)字符作擴(kuò)展名。因?yàn)闆]有一個(gè)正式的擴(kuò)展名命名標(biāo)準(zhǔn),所以,有些文件格式可能會(huì)采用相同的擴(kuò)展名,出現(xiàn)這樣的情況就會(huì)使操作系統(tǒng)錯(cuò)誤地識(shí)別文件格式,同時(shí)也給用戶造成困惑。
擴(kuò)展名方式的一個(gè)特點(diǎn)是,更改文件擴(kuò)展名會(huì)導(dǎo)致系統(tǒng)誤判文件格式。例如,將.html 簡(jiǎn)單改名為.txt會(huì)使系統(tǒng)誤將HTML文件識(shí)別為純文本格式。盡管一些熟練的用戶可以利用這個(gè)特點(diǎn)什么是文檔形式的文件,但普通用戶很容易在改名時(shí)發(fā)生錯(cuò)誤,而使得文件變得無法使用。因此,現(xiàn)代的有些操作系統(tǒng)管理程序,例如 加入了限制向用戶顯示文件擴(kuò)展名的功能。 [編輯本段]特征簽名一種廣泛應(yīng)用在UNIX及其派生的操作系統(tǒng)上的方法是將一個(gè)特殊的數(shù)字存放在文件的特定位置里。最初這個(gè)數(shù)字一般是文件開始處的2個(gè)字節(jié)。現(xiàn)在一般是將任何可以獨(dú)一無二字符序列都可以作為特征簽名。例如GIF圖形文件是將文件開始處的六個(gè)字節(jié)作為特征簽名的,它可以是或者。但也有些文件很難通過這種方式識(shí)別,比如HTML文件。
采用這種方式可以更好的防止對(duì)文件格式發(fā)生誤判,并且特征簽名可以給出關(guān)于文件格式的更詳細(xì)的信息。這種方式的缺點(diǎn)是效率較低。特別是顯示大量的文件時(shí),由于每種特征簽名具有不同的識(shí)別方式,將消耗系統(tǒng)大量的資源對(duì)文件格式進(jìn)行判斷。擴(kuò)展名和后面將提到的元數(shù)據(jù)方式由于采用固定格式數(shù)據(jù),可進(jìn)行快速匹配。應(yīng)用程序往往利用特征簽名來判斷文件時(shí)否完整和有效。 [編輯本段]元數(shù)據(jù)最后一種方式將文件格式信息存放到磁盤特定的位置。
采用這種方式,元數(shù)據(jù)與文件本身分開存放。此法的缺點(diǎn)是可移植性差。因?yàn)椴煌奈募到y(tǒng)之間元數(shù)據(jù)可能需要轉(zhuǎn)換。 [編輯本段]蘋果的類型碼蘋果計(jì)算機(jī)的文件系統(tǒng)為每個(gè)文件的目錄入口都存儲(chǔ)了創(chuàng)建者和類型碼。這些代碼稱作。例如一個(gè)蘋果計(jì)算機(jī)創(chuàng)建的文件的創(chuàng)建者會(huì)是AAPL而類型也是APPL。RISC 操作系統(tǒng)采用類似的系統(tǒng),用一個(gè)12比特位的數(shù)字索引描述表。例如:十六進(jìn)制的FF5代表,文件類型就是文件。 [編輯本段]IBM/ 的擴(kuò)展文件屬性HPFS, NTFS, FAT12, FAT16, 及FAT32文件系統(tǒng)可以保存額外的文件屬性信息。它是由名字和與名字對(duì)應(yīng)的值組成。例如擴(kuò)展屬性“.type”用于判斷文件的類型,可能是值包括“Plain Text”或“HTML ”。一個(gè)文件可以有多種屬性。 [編輯本段]Unix的擴(kuò)展文件屬性ext2,ext3,版本3,XFS,JFS和FFS文件系統(tǒng)允許存儲(chǔ)擴(kuò)展的文件屬性。它是由名字和與名字對(duì)應(yīng)的值組成。名字應(yīng)當(dāng)是獨(dú)一無二的。 [編輯本段]Mime類型MIME廣泛地用于許多有關(guān)的應(yīng)用,并且正在被廣泛地采用到其他的應(yīng)用中。最初在RFC 1341中說明。MIME用一個(gè)類型/自類型表示文件的類型。例如:text/html代表文件是HTML文件,image/gif表示GIF文件。MIME最初是用于表示電子郵件的附件的類型。