檔案格式

檔案格式(英語:file format),又稱檔案類型,是指電腦爲了儲存資訊而使用的對資訊的特殊編碼方式,是用於辨識內部儲存的資料。比如有的儲存圖片,有的儲存程式,有的儲存文字資訊。每一類資訊,都可以一種或多種檔案格式儲存在電腦儲存中。每一種檔案格式通常會有一種或多種副檔名可以用來辨識,但也可能沒有副檔名。副檔名可以幫助應用程式辨識的檔案格式。

對於硬碟機或任何電腦的儲存裝置來說,有效的資訊只有0和1兩種。所以電腦必須設計有相應的方式進行資訊-位元的轉換。對於不同的資訊有不同的儲存格式。

概述

有些檔案格式被設計用於儲存特殊的資料,例如:

  • 影像檔案中的JPEG檔案格式僅用於儲存靜態的影像,
  • 而GIF既可以儲存靜態影像,也可以儲存簡單動畫;
  • Quicktime格式則可以儲存多種不同的媒體類型。
  • 文字類的檔案有:
    • text檔案一般僅儲存簡單沒有格式的ASCII或Unicode的文字;
    • HTML文件則可以儲存帶有格式的文字;
    • PDF則可以儲存內容豐富的,圖文並茂的文字。

同一個檔案格式,用不同的程式處理可能產生截然不同的結果。例如Word 文件,用Microsoft Word觀看的時候,可以看到文字的內容,而以無格式方式在音樂播放軟體中播放,產生的則是噪聲。一種檔案格式對某些軟體會產生有意義的結果,對另一些軟體來看,就像是毫無用途的數位垃圾。

規範

許多檔案格式都有公開的、不同程度規範或者建議的格式。這些規範或者建議描述了資料如何編碼,如何排列。有時也規定了是否需要特定的電腦程式讀取或處理。有兩種情況下,檔案格式沒有公開。第一種情況是:開發者將檔案格式視作商業秘密不願公開;第二種情況是:開發者不願或花去很少的時間用於規範文件。

需要注意的是,使用不公開的檔案格式可能會帶來額外的成本。要了解這類檔案格式,或者需要通過對獲得的檔案進行逆向工程,或者通過向開發者付費來獲得檔案的格式。第二種方式中往往還需要與開發者簽訂不擴散協定。不論怎樣兩種方式都是費時,費錢的。

辨識檔案的類型

從程式的角度來看,檔案是資料流,檔案系統為每一種檔案格式規定了訪問的方法。例如:元資料。不同的作業系統都習慣性的採用各自的方式解決這個問題,每種方式都有各自的優缺點。

副檔名

副檔名辨識檔案格式的方式最先在數字裝置公司CP/M作業系統被採用。而後又被DOSWindows作業系統採用。副檔名是指檔名中,最後一個點(.)號後的字母序列。例如,HTML檔案通過.htm.html副檔名辨識;GIF圖形檔案用.gif副檔名辨識。在早期的FAT檔案系統中,副檔名限制只能是三個字元,因此儘管現在絕大多數的作業系統已不再有此限制,許多檔案格式至今仍然採用三個字元作副檔名。因為沒有一個正式的副檔名命名標準,所以,有些檔案格式可能會採用相同的副檔名,出現這樣的情況就會使作業系統錯誤地辨識檔案格式,同時也給使用者造成困惑。

副檔名方式的一個特點是,更改副檔名會導致系統誤判檔案格式。例如,將filename.html簡單改名為filename.txt會使系統誤將HTML檔案辨識為純文字格式。儘管一些熟練的使用者可以利用這個特點,但普通使用者很容易在改名時發生錯誤,而使得檔案變得無法使用。因此,現代的有些作業系統管理程式,例如Windows Explorer加入了限制向使用者顯示副檔名的功能。

特徵簽章 (File header)

一種廣泛應用在UNIX及其衍生的作業系統上的方法是將一個特殊的數字存放在檔案的特定位置里。最初這個數字一般是檔案開始處的2個位元組。現在一般是將任何可以獨一無二字元序列都可以作為特徵簽章。例如GIF圖形檔案是將檔案開始處的六個位元組作為特徵簽章的,它可以是GIF87a或者GIF89a。但也有些檔案很難通過這種方式辨識,比如HTML檔案。

採用這種方式可以更好的防止對檔案格式發生誤判,並且特徵簽章可以給出關於檔案格式的更詳細的資訊。這種方式的缺點是效率較低。特別是顯示大量的檔案時,由於每種特徵簽章具有不同的辨識方式,將消耗系統大量的資源對檔案格式進行判斷。副檔名和後面將提到的元資料方式由於採用固定格式資料,可進行快速匹配。應用程式往往利用特徵簽章來判斷檔案是否完整和有效。

元資料

最後一種方式將檔案格式資訊存放到磁碟特定的位置。

採用這種方式,元資料與檔案本身分開存放。此法的缺點是可移植性差。因為不同的檔案系統之間元資料可能需要轉換。

蘋果Macintosh的類型碼

蘋果電腦的檔案系統為每個檔案的目錄入口都儲存了建立者類型碼。這些代碼稱作OSType。例如一個蘋果電腦建立的檔案的建立者會是AAPL類型也是APPLRISC作業系統採用類似的系統,用一個12位元位的數字索引描述表。例如:十六進制的FF5代表PoScript,檔案類型就是PostScript檔案。

IBM/Microsoft的擴充檔案屬性

HPFS, NTFS, FAT12, FAT16,及FAT32檔案系統可以儲存額外的檔案屬性資訊。它是由名字和與名字對應的值組成。例如擴充屬性「.type」用於判斷檔案的類型,可能是值包括「Plain Text」或「HTML document」。一個檔案可以有多種屬性。

Unix的擴充檔案屬性

ext2ext3ReiserFS版本3,XFSJFSFFS檔案系統允許儲存擴充的檔案屬性。它是由名字和與名字對應的值組成。名字應當是獨一無二的。

MIME類型

MIME廣泛地用於許多Internet有關的應用,並且正在被廣泛地採用到其他的應用中。最初在RFC 1341中說明。MIME用一個類型/子類型表示檔案的類型。例如:text/html代表檔案是HTML文件,image/gif表示GIF檔案。MIME最初是用於表示電子郵件附件的類型。

參見

外部連結