拡張子(かくちょうし)とは
- 著者:YAMANJO
- 公開日:2008年7月25日
- 最終更新日:2024年12月6日
2進数のバイナリは、ファイルという形式にまとまってはじめて扱うことができるようになります。こうして生成されたファイルの種類を、OSはどうやって判断しているのでしょうか?その仕組みについて学習していきましょう。
拡張子とは何か
前章で学習のとおり、ファイルは大きく分けてプログラムファイルとデータファイルに分類することができました。プログラムファイルはアプリケーションソフトの実行ファイルで、それ以外がデータファイルです。
データファイルは、主にアプリケーションソフトやスマートフォンなどの機器で作成されたファイルで、WordファイルやExcelファイル、画像ファイル、動画ファイルなど、種類は膨大になります。
また別の切り口として、すべてのファイルは2進数からなるバイナリファイルになりますが、そのうち、直接人間が扱うことを前提とする文字情報だけのテキストファイルを区別していました。
このように、分類は単純に見えますが、実行ファイルかそれ以外か、文字情報かバイナリか、用途や役割といった基準を加えて分類していくと、ファイルの種類は無数に増えていきます。
では、これらのファイルを管理しているOSは、その種類をどうやって判別しているのでしょうか?
例えば、このファイルは「Wordの文書だ」とか、「Excelのグラフだ」といった判別をどうやっているのかということです。これまで学習してきた方は、当然ディレクトリに登録されている情報によって判別していると考えるはずです。
ある意味ではそのとおりです。ディレクトリにはファイル名やサイズ、作成日時などの情報が登録されており、これによってファイルシステムが成り立っています。
ただし、ディレクトリにはファイルの種類や詳しい内容は登録されていないのです。
なぜなら、ディレクトリに過剰な情報を持たせると構造が複雑化し、処理の効率が低下するからです。つまり、ファイルの種類や内容まで記録すると情報が多くなりすぎるのです。ディレクトリにはファイル管理に必要な情報だけが記録されるようになっています。
例えば、ファイルの内容や用途が変わった場合、その都度、ディレクトリを更新していくのは非効率です。また、世の中に新しいファイル形式が登場するたびにディレクトリの更新が必要になってしまいます。
そのため、OSはもっと簡単な方法でファイルの種類を判別しています。
それが、
拡張子(かくちょうし)
になります。
拡張子とは、
ファイル名のピリオドの後ろに付いている3~4文字の文字列
のことです。
例えば、Wordファイルなら「.docx」、Excelファイルなら「.xlsx」という文字列が拡張子になります。
多くの人がこのような文字列を見たことがあると思います。しかし、見たことがない人もいるはずです。その理由は後述しますが、拡張子の文字列はファイルの種類によって異なります。つまり、理論的にはファイルの種類の数だけ拡張子が存在することになります。
とは言え、すべてのファイルに一意の拡張子が割り当てられているわけではありません。これも詳しくは後述しますが、共通して使用される拡張子やファイルの種類によって使用される拡張子は限られています。
OSはこの拡張子によって、
それがどういうファイルで、どのアプリケーションソフトで開いたらよいのかを判断している
のです。
3文字程度のただの文字列によって、ファイルの種類が識別されているということです。
したがって、拡張子を変更したり削除したりすると、OSはファイルを識別できなくなり、開くことができなくなってしまいます。非常に重要な文字情報になります。
そのため、Windowsの初期設定では拡張子を表示しない設定になっています。わざわざ表示させるように設定を変更しないと、拡張子を見ることができないのです。
Windows Vista以降、ファイル名を変更する場合、拡張子の部分までカーソルが行かないようになりました。当然ながら、どちらもファイル名を変更する際に、拡張子の文字列を変更してしまったり、削除してしまうリスクを回避するためです。
ファイル名を変更するとき、この拡張子の部分まで変更しようとすると「警告メッセージ」が表示されます。
拡張子の意味を理解していれば、なんてことのないトラブルですが、理解していなければファイルが開けなくなります。
そのため、
脱初心者の第一歩は拡張子を表示すること
と言えます。
拡張子を表示させてみよう
拡張子を表示するには、エクスプローラー画面の「表示」タブより「ファイル名拡張子」にチェックを入れます。この操作はどのフォルダの画面でもかまいません。これですべてのフォルダのファイルで拡張子が表示されるようになります。
もしくは「コントロールパネル(大きいアイコン表示)」→「エクスプローラーのオプション」→「表示」タブ → 「登録されている拡張子は表示しない」のチェックを外すと、拡張子を表示させることができます。
コントロールパネルの表示方法はOSによって異なるので、検索ボックスに「コントロールパネル」と入力して検索するか、前項で学習した「ファイル名を指定して実行」画面で「control」と入力すると開くことができます。
拡張子が表示されたら少し実験をしてみましょう。拡張子を変更したらどうなるでしょうか?
Wordファイルの拡張子である「.docx」を「.do」に変更してみます。
すると、Windowsはファイルを認識できなくなり、このようにアイコンも真っ白なものに変化します。OSがこのファイルを識別できなくなった証拠です。
そして、この変化したアイコンをダブルクリックしてファイルを開こうとしても、メッセージが表示されて開くことができません。
このメッセージは、Windowsが「.do」という拡張子のファイルを開くアプリケーションソフトがわからないことを意味しています。開くアプリケーションソフトを指定してくださいというメッセージです。
OSがファイルの種類を拡張子という文字列によってのみ判断していることが理解できると思います。したがって、開けなくなったファイルは、拡張子を正しく修正するとアイコンも元通りになって開くことができます。
次に、拡張子をほかの実在する拡張子に変更してみます。Wordファイルの拡張子「.docx」をExcelファイルの拡張子「.xlsx」に変更してみましょう。
すると、WordのアイコンがExcelのアイコンに変化します。
このことからも、OSはファイルの中身ではなく拡張子によってファイルを識別しているということが理解できます。
先述のとおり、ディレクトリにはファイル管理に必要な情報だけが記録されています。何もかも記録していくと更新頻度が高くなり、非効率的だからです。
拡張子とディレクトリは補完関係にあります。ディレクトリ情報だけではファイルの種類が完全にはわからないため、拡張子がその役割を担っているのです。
ファイル形式とは何か
実験で確認できるように、拡張子を変更すると、OSはそのファイルがどのような種類で、どのアプリケーションソフトで開いたらいいのかわからなくなります。
言い換えれば、OSはファイルの中身でファイルの種類を識別しているわけではないということです。それがどうしたのかというと、じつはとても重要な意味を持ちます。
それは、
拡張子を変更してもファイルの中身は変化しない
ということです。
ただ単に、ファイルの判別ができなくなって、アイコンが変化するだけです。
例えば、Wordの拡張子である「.docx」をExcelの拡張子「.xlsx」に変更しても、アイコンがExcelに変わるだけで、ファイルの中身までExcel形式に変更されてしまうわけではありません。中身はWord形式のままです。
ファイルとは で「画像ファイルをテキスト形式に変換する」という説明をしましたが、これは中身のファイル形式を変えてしまう無理やりな行為です。画像ファイルの拡張子をテキスト形式である「.txt」に変えだけでは、中身が変わることはありません。
Excelのアイコンに変化したWordファイルを開こうとすると、下のようなエラーメッセージが表示されます。
このように「ファイル形式が正しくありません」と表示され、Excelが開くどころかファイル自体を開くことができません。つまり、拡張子は単なる識別情報で、ファイルの中身に影響を与えるものではないことを示しています。
したがって、拡張子というのは重要な文字列ですが、ファイルの中身を表しているだけのものにすぎません。大切なのはやはりファイルの中身の方です。
このファイルの中身のことを、
ファイル形式(ファイルフォーマット)
と言います。
これまで「ファイル形式」という用語を何度も用いてきました。何となくファイルの種類という意味でとらえていたと思いますが、正式に言えば拡張子によって識別されるデータの形式になります。
例えば、拡張子が「.docx」で識別されるファイル形式は「DOCX形式」(正式には「Microsoft Word Open XML形式」)となり、「.xlsx」で識別されるファイル形式は「XLSX形式」(正式には「Microsoft Excel Open XML形式」)となります。
多くの場合で拡張子名とファイル形式名が同じになりますが、拡張子「.txt」で識別される「プレーンテキストファイル形式」などのように異なる場合もあります。(慣例的に同じ名称で表現する場合もあります)
詳しくは次項で学習しますが、ファイルとしてまとまったバイナリデータをどのように解釈するのかを定めたものがファイル形式です。例えば、画像のファイル形式の場合、バイナリデータをどのように処理すれば画像として表示されるかを定めたものが画像のファイル形式になります。
このファイル形式を拡張子で表し、それに対応するアプリケーションソフトをOSが紐づけます。アプリケーションソフトはファイルのバイナリをその形式にそって読み込むという流れです。
したがって、ファイル形式が不明であればバイナリの解釈方法がわからず、上図のエラーのように、ファイルを表示することができないということになります。
拡張子はこのファイル形式を表現している文字列に過ぎません。拡張子を表示させることが脱初心者の第一歩と言いましたが、大切なのは拡張子ではなく、拡張子を見てファイル形式を判断できることです。
拡張子は無数に存在します。主な拡張子を覚えておけば、拡張子を見ただけで文書ファイルなのか、画像ファイルなのか、動画ファイルなのかといったファイル形式を判断できるようになります。
更新履歴
- 2008年7月25日
- ページを公開。
- 2009年3月29日
- ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
- 2018年1月25日
- ページをSSL化によりHTTPSに対応。
- 2024年12月6日
- 内容修正。
著者プロフィール
YAMANJO(やまんじょ)
- 経歴
- 岡山県出身、1980年生まれ(申年)の♂です。現在、総合病院で電子カルテなどの情報システム担当SEとして勤務。医療情報学が専門ですが、ネットワーク保守からプリンタの紙詰まり、救急車の運転手までこなしています。
- 医療情報技師、日本DMAT隊員。ITパスポート、シスアドなど、資格もろもろ。
- 趣味は近所の大衆居酒屋で飲むこと、作曲(ボカロP)、ダイビング。
- 関連リンク
- 詳細なプロフィールはこちら
- 作成したボカロ曲などはYoutubeへ
- X(Twitter)
