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