ファイル拡張子とファイル形式
ファイル拡張子は、最後のドット以降のラベルです。ファイル形式は、中のバイトが実際に表すものです。ほとんどの場合は一致しますが、一致しないときはバイトが勝ちます。このページでは、その理由と 1 分以内に違いを見分ける方法を説明します。
- やさしい解説
- 4 種類の判定を網羅
- データはブラウザの外に出ません
重要なポイント
拡張子
ファイル名の最後のドット以降のラベル。変更は簡単。契約ではなくヒントです。
ファイル形式
ファイル内のバイトによって識別される形式。先頭の数バイト (マジックバイトシグネチャ) を読むことで検出します。
食い違うとき
誰かがファイルをリネームしたとき、拡張子が設定されていなかったとき、またはファイルがポリグロット (同時に複数の形式として有効) のとき。
どのように報告するか
4 種類の判定: 一致、不一致、曖昧、不明。それぞれが形式の同一性についての確定的な答えです。
ファイル拡張子は、ファイル名末尾の .pdf や .docx のような部分です。ファイル形式は、バイトが実際に何を表しているかです。普段は一致しますが、必ずしもそうとは限りません。
食い違う理由
誰でもファイルをリネームできます。invoice.exe を invoice.pdf にリネームしても、依然として Windows 実行ファイルのバイトを持ち、ラベルだけが変わります。OS は PDF アイコンを表示しますが、ダブルクリックすると実行ファイルが起動するか (またはセキュリティツールがブロックします)。拡張子は安く、簡単に嘘をつきます。
ファイル形式はバイト自体、つまりファイルの先頭にあるマジックバイトシグネチャによって決まります。詳しい解説は マジックナンバーとは何ですか? にあります。
どちらが正しいかを見分ける方法
- 一致
拡張子とバイトが合致。安心なケース。
- 不一致
拡張子と中身が食い違っています。開く前に立ち止まってください。
- 曖昧
複数の既知の形式が同じプレフィックスに当てはまります (例: すべての Office ドキュメントは ZIP)。
- 不明
認識できるシグネチャがありません。プレーンテキストが多く、デスクトップでは AI 内容分類器を実行します。