2.2 ファイル
2.2.1 ファイルの概要
コンピュータは、外部記憶装置としてフロッピーディスクドライブ、クイックディスク、データレコーダ(テープレコーダ)や紙テープ装置などを使用します。これらの外部記憶装置に記録されたプログラムやデータを総称してファイルといいます。
DOSは、このようなファイルの登録、既存のファイルへの追加、修正、ファイルの削除などの処理を行う機能を持っています。このような機能(それを実現するプログラム)を、ファイルマネージメントシステム、または単にファイルシステムと呼んでいます。
DOSが扱うファイルとは、普通ディスクに記録されるディスクファイルです。しかし、MSX-DOSでは、プリンタなどの周辺機器をもファイルとして管理しています。このため、周辺機器を扱うためのプログラムをわざわざ開発する必要がなく、周辺機器の取り扱いが簡単になります。各周辺機器には特殊なファイル名が割り当てられており、このファイル名はディスクファイル名と同様にコマンド行で使用します。
2.2.2 ディスクファイル
MSX-DOSではディスクファイルの管理を、それぞれのディスクに用意されているFAT(File Allocation Table)とディレクトリ(Directory)を用いて行います。FATとは、ディスクでのファイルの配置状況を記録した地図のようなものです。また、ディレクトリは、ファイル名とそのファイルに関する情報を記録した索引です。DOSを利用するときはこのうちディレクトリにあるファイル名だけを意識していればよく、実際のファイル管理はすべてDOSが行います。
以下のように「dir」コマンドを用いてディレクトリを見ると、そのディスクにどんなファイルがあり、そのファイルの大きさといつ修正されたか、そしてディスクの残り容量がわかります。
A>dir MSXDOS SYS 2432 85-08-23 9:29p COMMAND COM 6656 85-09-02 10:10p 2 files 352256 bytes free A>
1. ファイル名
ファイル管理の中心となるものは、そのファイルに付けられたファイル名です。ファイル名は、1〜8文字のファイル名と1〜3文字の拡張子からなっていますが、拡張子は必ずしも必要ではありません。また、ファイル名と拡張子の間はピリオド「.」で区切ります。ファイル名として使用できる文字は次のとおりです。
A〜Z 0〜9 $ & # @ ! % ' ( ) - { } ~ ひらがな カタカナ
なお、アプリケーションプログラムによっては、ファイル名として一部の文字が使えないことがあります。その時にはA〜Z、0〜9を使用して下さい。
上記の文字は、ファイル名や拡張子のどの部分にも使うことができます。その際、アルファベットの小文字は、MSX-DOSによって大文字に変換されます。
拡張子は、ファイルの種類を区別しやすくするために使います。拡張子には、MSX-DOSでその使用が決まっているものや、アプリケーションによっては習慣的に特定の拡張子を用いるものがあります。そのようなときには、必ずその拡張子を使って下さい。
■MSX-DOSでその使用が決まっている拡張子
拡張子 | ファイルの種類 | 例 |
.BAT | バッチファイル | AUTOEXEC.BAT |
.COM | コマンドファイル | COMMAND.COM |
.SYS | システムファイル | MSXDOS.SYS |
拡張子 | ファイルの種類 |
.ASM | アセンブラソースファイル |
.BAK | バックアップファイル |
.BAS | ベーシックプログラムファイル |
.C | Cソースファイル |
.COB | COBOLソースファイル |
.CRF | クロスリファレンスファイル |
.DAT | データファイル |
.FIF | FORTHソースファイル |
.FOR | FORTRANソースファイル |
.HEX | インテルHEXオブジェクトファイル |
.LIB | アセンブラライブラリファイル |
.M80 | アセンブラライブラリファイル |
.MAC | アセンブラソースファイル |
.PAS | PASCALソースファイル |
.PLI | PL/Iソースファイル |
.PRN | リスティングファイル |
.REL | リロケータブルオブジェクトファイル |
なお、アプリケーションによっては、使う拡張子が決まっているものがあります。
2.ワイルドカード文字
ワイルドカード文字とは、ファイル名を指定する際に、任意の1字または文字列に対応して、その文字または文字列の代りに用いることができる省略記号のことです。ワイルドカード文字を用いると、ファイルを指定する際にいくつかのファイルをまとめて指定することができます。ワイルドカード文字には、任意の1字に対応する「?」(クエスチョンマーク)と、任意の文字列に対応する「*」(アスタリスク)の2種類があります。
「dir」コマンドを例に、ワイルドカード文字の使い方を解説します。「dir」コマンドにワイルドカード文字を用いれば、限定されたファイルについての情報を表示させることができます。
ここでは、ドライブAに次のようなディスクが入っていたとして述べます。
A>dir ABCDE EXT 1664 85-07-17 9:18a ABXDE EXT 256 85-07-26 6:56p ABYDE EXT 1280 85-07-31 3:38p ABCZDE COM 9984 85-08-09 12:08p XYZ COM 8320 85-08-25 3:39a 5 files 337920 bytes free A>
■「?」(クエスチョンマーク)
「dir」のパラメータに「ab?de.ext」というファイル名を指定したとします。この場合、「dir」は以下に示すようにファイル名が全体で5文字でABで始まりDEで終わり、拡張子が「.EXT」のすべてのファイルを表示します。
A>dir ab?de.ext ABCDE EXT 1664 85-07-17 9:18a ABXDE EXT 256 85-07-26 6:56p ABYDE EXT 1280 85-07-31 3:38p 3 files 337920 bytes free A>
なお、「?」は、拡張子の中でも同様に使うことができます。
■「*」(アスタリスク)
ファイル名または拡張子の中に「*」があると、「*」はその位置以降の文字列を「?」に置き換えられます。つまり、「*」は連続した「?」の略号と同じです。次の2つのコマンドは全く同じ意味で、そのディスクに記録されているすべてのファイルを表示します。
A>dir *.* A>dir ????????.???
次のコマンドは、拡張子が「.COM」の全てのファイルを表示します。
A>dir *.com ←「dir ????????.com」と同じ ABCZDE COM 9984 85-08-09 12:08p XYZ COM 8320 85-08-25 3:39a 2 files 337930 bytes free A>
次のコマンドは、ファイル名がABCで始まる全てのファイルを表示します。
A>dir abc*.* ←「dir abc?????.???」と同じ ABCDE EXT 1664 85-07-17 9:18a ABCZDE COM 9984 85-08-09 12:08p 2 files 337930 bytes free A>
3.ドライブ指定
MSX-DOSはファイルをディスクドライブごとに管理しています。そのため、違うドライブに同じ名前のファイルがあっても、問題はありません。
MSX-DOSが管理するドライブの数は最大8台で、それぞれA、B、C〜Hのアルファベットのドライブ名を持っています。ドライブを指定するときには、この文字の後ろに「:」を付け、「d:」というように指定します。この文字とコロンの組み合わせを、「ドライブ指定」といいます。
また、ドライブ指定、ファイル名、拡張子をこの順で続けたものを、特に「ファイルスペック」といいます。ファイルスペックの書式は以下のとおりです。
[<ドライブ指定>]<ファイル名>[.<拡張子>]
例 |
A:BCDEFGHI.BAS
なお、デフォルトドライブにあるファイルを指定するときは、ドライブ指定は省略することができます。
2.2.3 特殊なファイル名
MSX-DOSでは周辺機器に特殊なファイル名を割り当て、各周辺機器をディスクファイルと同じようにコマンド行で取り扱えるようにしています。この特殊なファイル名を「デバイスファイル名」といいます。デバイスファイル名には次のものがあります。
デバイスファイル名 | 機能 |
AUX | データレコーダなどの補助入出力装置との入出力や他のコンピュータとの通信のために用意してあります。起動時は、NULと同じ機能に設定してあります。 |
CON | キーボードからの入力や、ディスプレイへ出力するときに使用します。 |
NUL | コマンドがその構文上、入出力のファイル名を要求していても、特にファイルを作らないときに使用します。 |
PRN | プリンタに出力するときに使用します。LSTもこれと同じです。 |
デバイスファイル名を用いた例を以下に2つあげます。
A>copy con autoexec.bat
キーボードからの入力を「autoexec.bat」というファイル名でデフォルトドライブ上に作ります。
A>copy test.mac prn
「test.mac」というファイルの内容をプリンタに打ち出します。
なお、デバイスファイルを使用するとき、たとえドライブ指定や拡張子が指定されていても、デバイスファイル名が優先します。したがって、CON.LSTはファイルにはなりません。例えば、下のようなコマンドを入力しても、CON.LSTというディスクファイルは作られず、SAMPLE.MACの内容がディスプレイに表示されます。
A>copy sample.mac con.lst