(57)【特許請求の範囲】
【請求項１】
ディレクトリへのファイルの記録と、ディレクトリに記録されたファイルの削除とを行うファイル管理装置であって、
前記ファイルが削除されると、当該削除されたファイルが属していたディレクトリを特定する情報と、当該削除されたファイルが使用していたディレクトリエントリを特定する情報と、を相互に関連付けて記憶媒体に保存する保存手段と、
前記削除されたファイルが属していたディレクトリに、新しいファイルを記録するに際し、未使用のディレクトリエントリがない場合、前記保存手段により保存された情報によって特定されるディレクトリエントリに当該新しいファイルを記録する記録手段と、を有することを特徴とするファイル管理装置。
【請求項２】
前記記録手段は、同一のディレクトリに、未使用のディレクトリエントリと、ファイルが削除されたディレクトリエントリとの両方が含まれている場合には、前記新しいファイルを、未使用のディレクトリエントリに優先的に記録することを特徴とする請求項１に記載のファイル管理装置。
【請求項３】
前記保存手段は、前記削除されたファイルが使用していたディレクトリエントリを特定する情報が同一のディレクトリに２つ以上ある場合には、当該ディレクトリを特定する情報と、当該２つ以上のディレクトリエントリを特定する情報のうち当該ディレクトリの先頭に最も近いディレクトリエントリを特定する情報と、を相互に関連付けて記憶媒体に保存することを特徴とする請求項１又は２に記載のファイル管理装置。
【請求項４】
前記保存手段は、前記新しいファイルが記録されると、当該記録された新しいファイルが属するディレクトリを特定する情報と、当該記録された新しいファイルが使用しているディレクトリエントリを特定する情報と、を相互に関連付けて記憶媒体に保存し、
前記記録手段は、前記保存手段により、前記記録された新しいファイルが属するディレクトリを特定する情報と、当該記録された新しいファイルが使用しているディレクトリエントリを特定する情報と、が相互に関連付けられて記憶媒体に記録された場合には、当該情報によって特定されるディレクトリエントリから、次のファイルを記録するディレクトリエントリを探索することを特徴とする請求項１〜３の何れか１項に記載のファイル管理装置。
【請求項５】
ディレクトリへのファイルの記録と、ディレクトリに記録されたファイルの削除とを行うファイル管理方法であって、
前記ファイルが削除されると、当該削除されたファイルが属していたディレクトリを特定する情報と、当該削除されたファイルが使用していたディレクトリエントリを特定する情報と、を相互に関連付けて記憶媒体に保存する保存工程と、
前記削除されたファイルが属していたディレクトリに、新しいファイルを記録するに際し、未使用のディレクトリエントリがない場合、前記保存工程により保存された情報によって特定されるディレクトリエントリに当該新しいファイルを記録する記録工程と、を有することを特徴とするファイル管理方法。
【請求項６】
前記記録工程は、同一のディレクトリに、未使用のディレクトリエントリと、ファイルが削除されたディレクトリエントリとの両方が含まれている場合には、前記新しいファイルを、未使用のディレクトリエントリに優先的に記録することを特徴とする請求項５に記載のファイル管理方法。
【請求項７】
前記保存工程は、前記削除されたファイルが使用していたディレクトリエントリを特定する情報が同一のディレクトリに２つ以上ある場合には、当該ディレクトリを特定する情報と、当該２つ以上のディレクトリエントリを特定する情報のうち当該ディレクトリの先頭に最も近いディレクトリエントリを特定する情報と、を相互に関連付けて記憶媒体に保存することを特徴とする請求項５又は６に記載のファイル管理方法。
【請求項８】
前記保存工程は、前記新しいファイルが記録されると、当該記録された新しいファイルが属するディレクトリを特定する情報と、当該記録された新しいファイルが使用しているディレクトリエントリを特定する情報と、を相互に関連付けて記憶媒体に保存し、
前記記録工程は、前記保存工程により、前記記録された新しいファイルが属するディレクトリを特定する情報と、当該記録された新しいファイルが使用しているディレクトリエントリを特定する情報と、が相互に関連付けられて記憶媒体に記録された場合には、当該情報によって特定されるディレクトリエントリから、次のファイルを記録するディレクトリエントリを探索することを特徴とする請求項５〜７の何れか１項に記載のファイル管理方法。
【請求項９】
ディレクトリへのファイルの記録と、ディレクトリに記録されたファイルの削除とを行うことをコンピュータに実行させるためのコンピュータプログラムであって、
前記ファイルが削除されると、当該削除されたファイルが属していたディレクトリを特定する情報と、当該削除されたファイルが使用していたディレクトリエントリを特定する情報と、を相互に関連付けて記憶媒体に保存する保存工程と、
前記削除されたファイルが属していたディレクトリに、新しいファイルを記録するに際し、未使用のディレクトリエントリがない場合、前記保存工程により保存された情報によって特定されるディレクトリエントリに当該新しいファイルを記録する記録工程と、をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル管理装置、ファイル管理方法、及びコンピュータプログラムに関し、特に、新しく作成されるファイルを記録するディレクトリエントリを探索するために用いて好適なものである。
【背景技術】
【０００２】
新しく作成しようとするファイルの名前を記録するディレクトリエントリの位置を探索する方法に関して、ＦＡＴ（File Allocation Table：ファイル割り当て表）ファイルシステムの場合を例に挙げて背景技術を説明する。
ＦＡＴファイルシステムにおいて、ファイルの名前、その他のメタデータが記録されているディレクトリエントリは、同一のディレクトリに属するもので束ねられ、文章又は画像等のデータの場合と同様に、１つ以上のクラスタの連鎖として管理されている。
【０００３】
ファイルシステム上の或るディレクトリに新しくファイルを作成しようとする場合には、使用されていないディレクトリエントリがクラスタの先頭から順番に使用されて隙間無く埋められていく。もしディレクトリエントリがクラスタの一番最後まで使用されている場合には、新しいクラスタがディレクトリに対して割り当てられる。
一方、いったん作成したファイルを削除した場合には、そのファイルに対応するディレクトリエントリには削除したことを示す印が付けられ、そのディレクトリエントリは、後で新しく作成するファイルのために再利用することができる（特許文献１を参照）。
【０００４】
以上のように新しくファイルを作成する場合には、過去に一度も使用さていないディレクトリエントリを使用する場合と削除されたファイルのディレクトリエントリを再利用する場合とがある。
一般的には、ディレクトリの一番最後のディレクトリエントリまでを使い切った後には、記憶媒体の容量を効率的に使用するために、まず、削除済の印が付けられたディレクトリエントリをディレクトリの先頭から探す。そして、再利用できるディレクトリエントリが見つからなかった場合にだけ、新しいクラスタを割り当てる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２４２７０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、一度も使用されていないディレクトリエントリを使い切った後に、ディレクトリの先頭から再利用できるディレクトリエントリを探す場合には、次の問題がある。すなわち、ディレクトリ全体を検索するために消費する時間が、そのディレクトリに既に存在しているファイルの数に応じて線形的に長くなるという問題がある。さらに、ディレクトリ全体を検索した結果、そのディレクトリにおいて再利用できるディレクトリエントリが１つも無かった場合には、結果的にディレクトリ全体の検索に消費した時間は全く無駄になってしまうという問題がある。
本発明は、以上の問題点に艦みてなされたものであり、新しく作成されるファイルを記録するディレクトリエントリの位置を高速に探索することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のファイル管理装置は、ディレクトリへのファイルの記録と、ディレクトリに記録されたファイルの削除とを行うファイル管理装置であって、前記ファイルが削除されると、当該削除されたファイルが属していたディレクトリを特定する情報と、当該削除されたファイルが使用していたディレクトリエントリを特定する情報と、を相互に関連付けて記憶媒体に保存する保存手段と、前記削除されたファイルが属していたディレクトリに、新しいファイルを記録するに際し、未使用のディレクトリエントリがない場合、前記保存手段により保存された情報によって特定されるディレクトリエントリに当該新しいファイルを記録する記録手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、新しく作成されるファイルを記録するディレクトリエントリの位置を高速に探索することができる。
【図面の簡単な説明】
【０００９】
【図１】ファイルシステム装置の構成を示す図である。
【図２】ＦＡＴ型ディスクの記録フォーマットを示す図である。
【図３】ディレクトリエントリの一つの構成を概念的に示す図である。
【図４】ディレクトリエントリの配置を示す図である。
【図５】ファイルを削除する際の処理の第１の例を説明するフローチャートである。
【図６】新しくファイルを作成する際の処理を説明するフローチャートである。
【図７】ファイルを削除する際の処理の第２の例を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、図面を参照しながら、本発明の実施形態について説明する。
（第１の実施形態）
まず、第１の実施形態について説明する。図１は、ファイル管理を行うファイルシステム装置の構成の一例を示す図である。
図１において、１０１はＣＰＵ、１０２は記憶媒体、１０３はバス、１０４はアプリケーション部、１０５はファイルシステム部、１０６はファイル削除処理部、１０７は新規ファイル作成処理部、１０８は再利用ディレクトリエントリ情報である。アプリケーション部１０４及びファイルシステム部１０５は、例えばＲＯＭならびにＲＡＭに配置されるコンピュータプログラム及びデータを用いて構成される。ＣＰＵがこのコンピュータプログラムを実行することにより、アプリケーション部１０４及びファイルシステム部１０５が有する機能が実現される。図１では、説明の便宜のため、アプリケーション部１０４及びファイルシステム部１０５を、記憶媒体１０２とは別の部分に示している。しかしながら、実際には、アプリケーション部１０４及びファイルシステム部１０５は、記憶媒体１０２（例えばＲＯＭやＲＡＭ）に記憶されている。
【００１１】
再利用ディレクトリエントリ情報１０８は、クラスタ番号１０９、オフセット１１０及びフラグ１１１の組からなる情報である。クラスタ番号１０９は、記憶媒体１０２等から削除されたファイルが属していたディレクトリの先頭クラスタの番号を特定する情報である。オフセット１１０は、記憶媒体１０２等から削除されたファイルのメタデータが記録されていた位置（ディレクトリの先頭からのオフセットのバイト数）を特定する情報である。フラグ１１１は、現在の再利用ディレクトリエントリ情報１０８の状態を示すフラグである。このフラグ１１１の初期値は無効を指示する値とする。フラグ１１１の値としては、無効を指示する値の他に、有効を指示する値と使用済みを指示する値とがある。無効とは、該当するディレクトリに再利用することが可能なディレクトリエントリがないことを示す。有効とは、該当するディレクトリに再利用することが可能なディレクトリエントリがあることを示す。使用済みとは、再利用することが可能なディレクトリエントリにファイルが記録されたことを示す。
【００１２】
次に、ＦＡＴファイルシステムの概略を説明する。
ファイル割り当て表（ＦＡＴ）を使用してファイルシステム上にあるファイルのデータを管理するファイルシステムのことを、ＦＡＴファイルシステムと呼ぶ。また、ＦＡＴファイルシステム用に論理フォーマットされたハードディスク等の記憶メディアをＦＡＴ型ディスクと呼ぶ。
ユーザプログラムからの指示を受け、ＦＡＴ型ディスクに存在するファイルのデータの読み出しや書き込みといった操作を行う場合、その入出力はセクタと呼ばれる単位で行われる。１セクタの大きさは、通常、５１２バイト又は５１２のべき乗バイトである。
【００１３】
また、２のべき乗（１,２,４,８,１６,・・・）個の連続したセクタの集合をクラスタと呼ぶ。ＦＡＴ型ディスク上に存在するファイルはクラスタの集合で表される。１クラスタが何個のセクタから構成されるか（セクタ／クラスタ数）は、主にＦＡＴ型ディスクの容量に依存してディスクの論理フォーマット時に決定される。
図２は、ＦＡＴ型ディスクの記録フォーマットの一例を示す図である。
図２において、ブートセクタ２０１は、先頭の１セクタ（論理セクタ番号０）を示している。ブートセクタ２０１には、以下のものが記録されている。すなわち、オペレーティングシステムをロードするためのブートプログラム本体、セクタ／クラスタ数（１クラスタあたりのセクタ数）、後述のルートディレクトリの直下に置くことの出来る最大ファイル数（ルートディレクトリエントリの数）が記録されている。この他、ブートセクタ２０１には、ディスクの全セクタ数、後述するＦＡＴ領域に使用されているセクタの数（１ＦＡＴあたりのセクタ数）、論理フォーマット情報等が記録されている。
【００１４】
ＦＡＴ領域２０２は、ファイルへのクラスタの割り当て（アロケーション）状況と、クラスタの連鎖の状態とを記録する領域である。ＦＡＴ領域２０２は、安全のため図２に示すように２重化されて、ディスク上に連続して配置されている（図２のＦＡＴ１及びＦＡＴ２を参照）。つまり、ＦＡＴ１とＦＡＴ２には常に同じ内容のものが記録されている。
ルートディレクトリ領域２０３は、ルートディレクトリ上に存在するファイル、又はルートディレクトリのディレクトリエントリを記録する領域である。
【００１５】
データ領域２０４は、「ファイルのデータ」又は「ルートディレクトリ以外のディレクトリに属するファイル、若しくはルートディレクトリ以外のディレクトリのディレクトリエントリ」を記録する領域である。
データ領域２０４は、クラスタ単位で管理されているが、ファイル又はディレクトリを構成しているクラスタの連鎖はＦＡＴ領域２０２によって管理されている。したがって、ファイル又はディレクトリのデータがＦＡＴ型ディスク上で物理的に連続している必要は無い。
【００１６】
以降では説明を簡単にするために、１クラスタは１セクタで構成されているものとする。
図３は、図２に示すルートディレクトリ領域２０３にあるディレクトリエントリの一つの構成の一例を概念的に示す図である。
図３において、ディレクトリエントリは、３２バイトで構成される。ディレクトリエントリの各項目として、ファイルに対するメタデータが記録されている。具体的には、ＦＡＴ型ディスクのルートディレクトリ上に存在するファイル又はディレクトリ（サブディレクトリ）の名前・拡張子・属性・作成日時又は最終更新日時・先頭クラスタ番号・ファイルサイズ等が記憶されている。ここで、属性には、保存、ディレクトリ、ボリュームラベル、システムファイル、隠し、読み出し専用の各ビット値が含まれる。また、先頭クラスタ番号は、ファイルを構成する最初のクラスタの番号である。また、ファイルサイズは、バイト単位で表されたファイルの大きさである。
尚、ルートディレクトリの下に作成されるサブディレクトリのディレクトリエントリの構成も、ルートディレクトリのディレクトリエントリに準じている。
【００１７】
図４は、ルートディレクトリ領域２０３におけるディレクトリエントリの配置の一例を示す図である。
通常は、新しくファイルが作成される度に、ルートディレクトリ領域２０３の下位アドレスから、ディレクトリエントリが新しいファイルのメタデータで埋まって行く。まだ一度もファイルのメタデータが記録されていないディレクトリエントリは、少なくとも、ディレクトリの名前の先頭の１バイト目が００ｈ（１６進数）で埋められている。また、ディレクトリの名前の先頭１バイト目がＥ５ｈであることは、そのディレクトリが、一度ファイルが作成された後に、そのファイルが削除されたディレクトリであることを示している。
尚、ルートディレクトリ上に作成されるサブディレクトリのディレクトリエントリの配置も、ディレクトリエントリの配置に準じている。
【００１８】
以下、図５のフローチャートを参照しながら、既存のファイルを削除する際のファイルシステム装置の処理の一例を説明する。
まず、ステップＳ５０１において、ファイル削除処理部１０６は、アプリケーション部１０４から指定されたファイルが属するディレクトリの先頭クラスタのデータを読み出してシステムのＲＡＭに書き込む。
次に、ステップＳ５０２において、ファイル削除処理部１０６は、次の処理を行う。すなわち、ＲＡＭに書き込んだ先頭クラスタのデータの先頭の３２バイト（先頭のディレクトリエントリ）に記録されている名前及び拡張子が、アプリケーション部１０４から指定されたファイルの名前及び拡張子と一致しているか否かを判定する。この判定の結果、名前及び拡張子がそれぞれ一致している場合にはステップＳ５０３に進み、一致していない場合にはステップＳ５０５に進む。
【００１９】
ステップＳ５０３に進むと、ファイル削除処理部１０６は、アプリケーション部１０４から指定されたファイルをディレクトリから削除すると共に、当該ディレクトリのディレクトリエントリの１バイト目（名前の先頭）にＥ５ｈを書き込む。
次に、ステップＳ５０４において、ファイル削除処理部１０６は、操作中のディレクトリの先頭クラスタ番号（クラスタ番号１０９）とディレクトリエントリが記録されている位置（オフセット１１０）とを再利用ディレクトリエントリ情報１０８として格納する。更に、ファイル削除処理部１０６は、有効を指示する値にフラグ１１１を更新する。そして、図５のフローチャートによる処理を終了する。
【００２０】
一方、ステップＳ５０２からステップＳ５０５に進むと、ファイル削除処理部１０６は、操作中のディレクトリを１つ進める。
次に、ステップＳ５０６において、ファイル削除処理部１０６は、アプリケーション部１０４から指定されたファイルが属するディレクトリに含まれる全ての有効なディレクトリエントリを調査し終えたか否かを判定する。例えば、名前の先頭が００ｈであるディレクトリエントリが表れるか、又は、選択したディレクトリエントリの数が１つのクラスタに収まるディレクトリエントリの数に達すると、全ての有効なディレクトリエントリを調査し終えたと判定する。この判定の結果、全ての有効なディレクトリエントリを調査し終えた場合には、図５のフローチャートによる処理を終了する。一方、全ての有効なディレクトリエントリを調査し終えていない場合には、ステップＳ５０２に戻り、ステップＳ５０５で指定されたディレクトリについてステップＳ５０２以降の処理を行う。
【００２１】
次に、図６のフローチャートを参照しながら、新しくファイルを作成する際のファイルシステム装置の処理の一例を説明する。
まず、ステップＳ６０１において、新規ファイル作成処理部１０７は、アプリケーション部１０４から指定されたファイルを作成しようとするディレクトリの先頭クラスタのデータを読み出してシステムのＲＡＭ上に書き込む。
次に、ステップＳ６０２において、新規ファイル作成処理部１０７は、ＲＡＭに書き込んだ先頭クラスタのディレクトリエントリの１バイト目の値が００ｈであるか否かを判定する。すなわち、新規ファイル作成処理部１０７は、ＲＡＭに書き込んだ先頭クラスタのディレクトリエントリが未使用のディレクトリエントリであるか否かを判定する。この判定の結果、先頭クラスタのディレクトリエントリの１バイト目の値が００ｈである場合（未使用のディレクトリエントリである場合）にはステップＳ６０３に進み、そうでない場合にはステップＳ６０４に進む。
【００２２】
ステップＳ６０３に進むと、新規ファイル作成処理部１０７は、操作しているディレクトリエントリに新しいファイルのためのメタデータを記録する。そして、図６のフローチャートによる処理を終了する。
一方、ステップＳ６０４に進むと、新規ファイル作成処理部１０７は、操作中のディレクトリを１つ進める。
次に、ステップＳ６０５において、新規ファイル作成処理部１０７は、アプリケーション部１０４から指定されたファイルが属するディレクトリに含まれる全ての有効なディレクトリエントリを調査し終えたか否かを判定する。例えば、選択したディレクトリエントリの数が１つのクラスタに収まるディレクトリエントリの数に達すると、全ての有効なディレクトリエントリを調査し終えたと判定する。この判定の結果、全ての有効なディレクトリエントリを調査し終えていない場合には、ステップＳ６０２に戻り、ステップＳ６０４で指定されたディレクトリについてステップＳ６０２以降の処理を行う。一方、全ての有効なディレクトリエントリを調査し終えた場合には、ステップＳ６０６に進む。
【００２３】
ステップＳ６０６に進むと、新規ファイル作成処理部１０７は、アプリケーション部１０４から指定されたファイルが属するディレクトリに含まれるディレクトリエントリの中に、再利用が可能な有効なディレクトリエントリがあるか否かを判定する。この判定は、再利用ディレクトリエントリ情報１０８のフラグ１１１の値が有効を指示する値であるか否かに基づいて行われる。この判定の結果、再利用が可能な有効なディレクトリエントリがある場合（再利用ディレクトリエントリ情報１０８のフラグ１１１の値が有効を指示する値である場合）には、ステップＳ６０７へ進み、そうでない場合にはステップＳ６０９に進む。
ステップＳ６０７に進むと、新規ファイル作成処理部１０７は、この再利用が可能な有効なディレクトリエントリに新しいファイルのためのメタデータを記録する。再利用が可能な有効なディレクトリエントリの位置は、再利用ディレクトリエントリ情報１０８のクラスタ番号１０９及びオフセット１１０に基づいて判断される。
次に、ステップＳ６０８において、新規ファイル作成処理部１０７は、再利用ディレクトリエントリ情報１０８のフラグ１１１を、使用済みを指示する値に更新する。そして、図６のフローチャートによる処理を終了する。
【００２４】
一方、ステップＳ６０６からステップＳ６０９に進むと、新規ファイル作成処理部１０７は、ファイルが削除されたディレクトリエントリが未だあるか否かを判定する。ここでは、再利用ディレクトリエントリ情報１０８のフラグ１１１の値が無効を指示する値であればディレクトリの先頭からファイルが削除されたディレクトリエントリを探索する。また、再利用ディレクトリエントリ情報１０８のフラグ１１１の値が使用済みを指示する値であれば再利用ディレクトリエントリ情報１０８の示すディレクトリエントリの位置（オフセット１１０）から、ファイルが削除されたディレクトリエントリを探索する。そして、ディレクトリの最後に至るまでにファイルが削除されたディレクトリエントリが見つかった場合にはステップＳ６１０に進み、そうでない場合にはステップＳ６１１に進む。
【００２５】
ステップＳ６１０に進むと、新規ファイル作成処理部１０７は、ステップＳ６０９で見つかったと判定されたディレクトリエントリに新しいファイルのためのメタデータを記録する。また、この場合には、新規ファイル作成処理部１０７は、操作中のディレクトリエントリが記録されている位置（クラスタ番号１０９及びオフセット１１０）を再利用ディレクトリエントリ情報１０８に格納する。また、新規ファイル作成処理部１０７は、再利用ディレクトリエントリ情報１０８のフラグ１１１を、使用済みを指示する値に更新する。そして、図６のフローチャートによる処理を終了する。
一方、ステップＳ６０９からステップＳ６１１に進むと、新規ファイル作成処理部１０７は、クラスタの拡張を行い、拡張したクラスタの先頭のディレクトリエントリに新しいファイルのためのメタデータを記録する。そして、図６のフローチャートによる処理を終了する。
【００２６】
以上のように本実施形態では、或るディレクトリに新しくファイルを作成しようとする場合に、一度も使用されていないディレクトリエントリが無かった場合には、次の処理を行う。すなわち、削除されたファイルのディレクトリエントリの位置の情報（クラスタ番号１０９及びオフセット１１０）を使用して、再利用が可能なディレクトリエントリを探索して当該ディレクトリエントリの再利用を行う。よって、再利用が可能なディレクトリエントリを高速に見つけ出すことができる。また、再利用が可能なディレクトリエントリがない場合には、再利用を行ったディレクトリエントリから、ファイルが削除されたディレクトリエントリを検索する。その結果、ファイルを作成しようとするディレクトリに、削除されたファイルのディレクトリエントリが１つも無い場合に、ディレクトリ全体を検索する動作を省くことを可能にする。よって、新しいファイルのためのディレクトリエントリの位置の探索に消費する時間の短縮を図ることができる。以上のように本実施形態では、新しく作成されるファイルを記録するディレクトリエントリの位置を高速に探索することができる。
また、本実施形態では、新しくファイルを作成するに際し、同一のディレクトリに、未使用のディレクトリエントリと、再利用が可能なディレクトリエントリとの両方がある場合、未使用のディレクトリエントリを優先的に使用するようにした。したがって、再利用が可能なディレクトリエントリを探索する処理が必要以上に行われることを防止することができる。
【００２７】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。本実施形態では、同じディレクトリ上の既存ファイルを２つ以上削除する場合において、２つ目以降のファイルを削除する場合の処理について説明する。このように、本実施形態と第１の実施形態とは、既存のファイルを削除する際の処理の一部が主として異なる。したがって、本実施形態の説明において、第１の実施形態と同一の部分については、図１〜図６に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００２８】
図７は、既存のファイルを削除する際のファイルシステム装置の処理の一例を説明するフローチャートである。尚、図７のステップＳ７０４〜Ｓ７０５以外の処理については、第１の実施形態における図５のフローチャートと同じであるため、ここでは、これらの詳細な説明を省略する。
ステップＳ７０４において、ファイル削除処理部１０６は、再利用ディレクトリエントリ情報１０８のフラグ１１１の値が無効を指示する値であるか否かを判定する。この判定の結果、フラグ１１１の値が無効を指示する値である場合には、ステップＳ７０５を省略してステップＳ７０６に進み、そうでない場合にはステップＳ７０５に進む。
【００２９】
ステップＳ７０５に進むと、ファイル削除処理部１０６は、再利用ディレクトリエントリ情報１０８が示すディレクトリエントリの位置（クラスタ番号１０９及びオフセット１１０）が、操作中のディレクトリエントリの位置よりも後ろであるか否かを判定する。この結果、再利用ディレクトリエントリ情報１０８が示すディレクトリエントリの位置が、操作中のディレクトリエントリの位置よりも後ろである場合にはステップＳ７０６に進み、そうでない場合には、図７のフローチャートによる処理を終了する。
【００３０】
以上のように本実施形態では、ファイルの削除が行われたディレクトリエントリが同一のディレクトリに２つ以上ある場合、それらのうち、当該ディレクトリの先頭に最も近いディレクトリエントリに基づいて再利用ディレクトリエントリ情報１０８を作成する。したがって、新しくファイルを作成するに際し、ディレクトリの先頭から、再利用が可能なディレクトリエントリを探索する際に、再利用が可能なディレクトリエントリをより高速に探索することができる。
【００３１】
尚、前述した第１及び第２の実施形態の説明では、ＦＡＴファイルシステムを利用した場合を前提としているが、本発明はＦＡＴファイルシステムに限らず、他のファイルシステムに対しても適用することが可能である。
【００３２】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００３３】
（その他の実施例）
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）が当該コンピュータプログラムを読み出して実行する。
【符号の説明】
【００３４】
１０１  ＣＰＵ、１０４  アプリケーション部、１０５  ファイルシステム部
【図１】
0005697398.tif 000002
【図２】
0005697398.tif 000003
【図３】
0005697398.tif 000004
【図４】
0005697398.tif 000005
【図５】
0005697398.tif 000006
【図６】
0005697398.tif 000007
【図７】
0005697398.tif 000008