コンピュータにおけるファイル (file) は、任意のデータを格納するための論理的な単位の一つ。ファイルは紙、磁気テープ、磁気ディスクなどの物理的な記憶装置に記録・記憶される。場合によってはデータセット (data set) とも呼ばれる。
目次
1 概要
2 ファイルの区分
3 ファイルの保護
4 ファイルの格納
4.1 コンピュータ側から見たファイル
4.2 フラグメンテーション
5 バックアップ
6 ファイルシステムとファイルマネージャ
7 歴史
8 関連項目
9 脚注
10 外部リンク
//
コンピュータにデータ(デジタル化された情報)を格納する際、全く情報を含まない0バイトから記憶媒体の容量さえ許せば数テラバイトないしそれ以上に至るまで、さまざまな大きさのデータ列を一つの「かたまり」として扱う。これがファイルである。ファイルにはそれぞれ名前があり、ユーザやアプリケーションはその名前を頼りに、他にもたくさんあるファイルの中から必要なファイルを見つけることができる。ただし、ファイルがどのような構造の中に格納されているかはファイルシステムによって異なる。
ファイルの中に入れるデータの種類もさまざまである。例えばコンピュータプログラムが入ったファイルがあり、これをプログラムファイルと呼ぶ。同様に、データベースファイル、文書ファイル、表計算ファイル、画像ファイル、音楽ファイル、動画ファイルなどがある。
ファイルには、大きく分けてバイナリファイルとテキストファイルに区分される。バイナリファイルには、コンピュータ内部でプログラムが直接処理するデータがそのまま格納されている一方、テキストファイルでは、文字コードに従い文字により表現されたデータとして格納されているため、人間が読む事ができる。どちらもテキストエディタ等(Windowsでは、「メモ帳」等)で強制的に開き表示させることが可能だが、バイナリファイルが文字化けを起こすのに対して、テキストデータでは一定の文字列となって表示される。今日、広く利用されているワープロソフトで作成された文章ファイルもバイナリファイルの一種である。
MS-DOSなどキャラクタベースのオペレーティングシステム (OS) では、ファイル名に拡張子は付けられていても、依然各ソフトウェアではファイルの種別を意識することが必要であった。Windowsにおいて拡張子によるアプリケーションの関連づけが本格導入されて以降は、プログラムソースやバッチファイル、音楽演奏ソフトウェアで設定したプレイリスト(Windows上では拡張子が“m3u”など)の実体はテキストファイルであるなど、一般的なパソコン利用者にとってはあまり意味の無い区分になっている。
バイナリファイルの一部には、ファイルの先頭部分に決まったデータを含む場合がある(これをヘッダと言う)。一部のソフトウェアでは、この文字情報を参照して、データの種別や、データのフォーマットのバージョンを判断したりする(パソコンに既に入っているソフトウェアで開けるかどうかを確認するなど)ものがある。(Mac OSでは伝統的にこれを参照する他、正体の判らないファイルを判別するのに、これを利用する技術者やハッカーも居る。)また、バイナリファイルをバイナリデータとして開き、直接編集するためのバイナリエディタと呼ばれる専用のソフトウェアも存在する。
最近のコンピュータでは、ファイルを誤って(または故意に)書き換えたり削除したりといったことから保護する方法が備わっている。マルチユーザー環境では、ファイルパーミッションによって、誰がそのファイルを修正したり削除したり、あるいはファイルやフォルダーを作成したりできるかを規定している。これにより、特定のユーザーだけがファイルやフォルダーを作成したり修正したりできるよう設定したり、特定のユーザーだけが中身を読めるように設定したりできる。
もう1つの保護機構としてよく使われるのは、「リードオンリー」フラグを使う方法である。ファイルに対してこのフラグを立てると、ファイルの内容を読み込むことはできるが、書き換えることはできなくなる。これは変更されたり消去されたりすると困る重要な情報を保護するのに便利で、システムファイルなどの保護に使われる。システムによっては「隠し属性」フラグも持っていて、指定したファイルを(通常の手段では)見えないようにできる。これもユーザーに書き換えられると困るシステムファイルを隠すのに使われる。