コンピュータにおけるファイル(英: file)は、コンピュータでデータを扱いやすくするための仕組み。場合によってはデータセット(英: data set)とも呼ばれる。 ファイルはデータのやりとりを行うための統一的な仕組みである。言い換えるとファイルはセンサやプリンターなどの外部装置(周辺機器などが該当する)、あるいは他のプログラムへ動的なデータの入出力を行う(パイプを参照のこと)ためのものである。ファイルはハードディスクやUSBメモリなどの記憶媒体にデータを保存するためだけのものだと捉えられがちであるが、記憶媒体への入出力も記憶媒体という装置への入出力に過ぎない。他にもディレクトリをサポートするファイルシステムでは、ディレクトリはファイルを格納するためのファイルとみなすことができ、インターネットを実現するために重要なソケットもファイルに抽象化されているなど、多様な利用の形態がある。 かつてのパンチカードのような紙媒体、あるいは磁気テープといったシーケンシャルアクセスに強い媒体では連続した領域にデータを書き込むことが一般的であったが、近年のファイルシステムは磁気ディスクなどがもつランダムアクセス性を活かして不連続な領域にわたってデータを保存すること(フラグメンテーション)が多い。これは、アクセス速度が遅くなる代わりに無駄になる領域を減らし、より多くのデータを格納することに繋がる。ファイルにはアプリケーションが作成したデータの他に、ファイル名や様々な属性があり、この属性はファイルシステムに依存する。 ファイルの中に入れるデータの種類もさまざまである。例えばコンピュータプログラムが入ったファイルがあり、これをプログラムファイルと呼ぶ。同様に、データベースファイル、文書ファイル、表計算ファイル、画像ファイル、音楽ファイル、動画ファイルなどがある。これらをファイルフォーマットと呼ぶ。 「ファイル」という言葉がコンピュータの記憶装置に関連する用語として使われ始めたのは1952年で、当初はパンチカードに格納された情報を指した言葉だった[1]。初期のころは格納されている中身の情報よりも、装置自体をファイルと呼ぶことが多かった。例えば、IBM 350 のディスク装置は「ディスクファイル」と呼ばれていた[2]。 1962年のCTSSではファイルシステム機能があり、1つの補助記憶装置上に複数の「ファイル」が存在するという形態が登場した。これが現代的な意味でのファイルの始まりである。CTSSではファイル名が2つの部分で構成されていた。1つはユーザーが読めるプライマリ名で、セカンダリ名はファイルの種類を表していた[3][4]。このようなファイル名の構成方法は Microsoft Windows などの現代のオペレーティングシステムにも受け継がれている。 古い用法(情報を格納するものを「ファイル」と呼ぶ使い方)はほとんど見られなくなったが、例えばレジスタの集まりをレジスタファイルと呼ぶ[5]のは古い用法の名残である。 非常にシンプルな基本的な構成のコンピュータではファイルというものはない。使用時に手入力というものもある。これを再利用可能とするため、一度に取り扱うデータを外部の記憶媒体にアウトプットした集まりがファイルである。コンピュータのファイルはそれぞれ各アプリケーションが作成し使用するデータであるため、ファイルとはアプリケーションが認識すればよく、従来型の多くのコンピュータでは使用するアプリケーションを選択してから、そのアプリケーションで使用するデータのファイルを指定した。
概要
歴史パンチカードのファイルIBM 305 システム。2台のディスクファイル
ファイルの概念