(57)【要約】【課題】  クラスタチェーンに関するソフトウェア処理の高速化を図ること。【解決手段】  ディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに、先頭クラスタに引き続くクラスタのクラスタ番号を記録するようにした。そのため、所定のディレクトリ内のファイルのディレクトリ項目やディレクトリのディレクトリ項目が複数のクラスタにまたがって記録されているときに（クラスタチェーンが生成されているときに）、前記ディレクトリ内から所望のファイルを検索する場合には、前記ディレクトリを示すディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに記録されている情報を解析させることで、先頭クラスタに続くクラスタのクラスタ番号を取得することができる。そのため、クラスタチェーンの解析の高速化を図ることができ、その結果、前記所望ファイルの検索処理の改善を図ることができる。【選択図】  図２
2006309536.tif 000002
【特許請求の範囲】
【請求項１】
ＦＡＴファイルシステムに基づき、各ディレクトリに関するディレクトリ項目をクラスタチェーンを用いて記録するファイル管理プログラムであって、
前記ディレクトリ項目を格納しているクラスタを示すクラスタチェーン情報を、当該クラスタチェーン情報を記録するためのディレクトリクラスタチェーン項目に記録する記録機能をコンピュータに実行させることを特徴とするファイル管理プログラム。
【請求項２】
前記ディレクトリクラスタチェーン項目から前記クラスタチェーン情報を取得する情報取得機能をコンピュータに実行させることを特徴とする請求項１に記載のファイル管理プログラム。
【請求項３】
ＦＡＴファイルシステムに基づき、各ディレクトリに関するディレクトリ項目をクラスタチェーンを用いて記録するファイル管理装置であって、
前記ディレクトリ項目を格納しているクラスタを示すクラスタチェーン情報を、当該クラスタチェーン情報を記録するためのディレクトリ項目に記録する記録手段を備えたことを特徴とするファイル管理装置。
【請求項４】
前記ディレクトリクラスタチェーン項目から前記クラスタチェーン情報を取得する情報取得手段を備えたことを特徴とする請求項３に記載のファイル管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＡＴファイルシステムに基づいて、ファイルやディレクトリのディレクトリ項目を記録するファイル管理プログラム、及びファイル管理装置に関する。
【背景技術】
【０００２】
従来、ファイル管理プログラムとしては、例えば、マイクロソフト社のオペレーティングシステム(Windows(登録商標)やMS-DOS(登録商標)) に搭載されたファイルシステム、つまり、ＦＡＴ(File Allocation Table)ファイルシステムが知られている（例えば、特許文献１参照）。この特許文献１に記載されているファイル管理プログラムにあっては、新しいファイルやディレクトリが生成されるたびに、その生成されたファイル等のディレクトリ項目を、当該ファイル等を格納しているディレクトリに対応するクラスタ領域に記録することで、前記ファイル等を管理するようになっている。
【０００３】
また、この特許文献１に記載されているようなファイル管理プログラムにあっては、一般に、それらファイル等のディレクトリ項目の記録に使用される領域の合計サイズが１つのクラスタ領域のサイズより小さい場合には、ディレクトリ項目を１つのクラスタ領域に記録する。また、その合計サイズが、１つのクラスタのサイズより大きくなった場合には、それまでのクラスタ領域に引き続く（リンクする）クラスタ領域を新しく確保し、その新しく確保されたクラスタ領域に継続してディレクトリ項目を記録する。なお、クラスタ領域が新しく確保された場合には、その新しく確保されたクラスタ領域のクラスタ番号のリンク状態を、クラスタチェーンとして、ＦＡＴに記録するようになっている。
【０００４】
そして、所望のファイル等を検索する場合には、まず、当該ファイル等を格納しているディレクトリに対応するクラスタ領域群の先頭クラスタを、サブディレクトリ指示項目に基づいて読み出し、その先頭クラスタ内のディレクトリ項目に対して検索処理を開始する。また、先頭クラスタ内の全てのディレクトリ項目に対して検索処理が行われると、その検索処理を中断させ、ＦＡＴを参照してクラスタチェーンを解析し、先頭クラスタに引き続くクラスタ領域を特定する。そして、その特定されたクラスタ領域を読み出し、その読み出されたクラスタ領域内のディレクトリ項目に対して検索処理を再開する。
【特許文献１】特開平６−３０９２０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来のファイル管理プログラムにあっては、クラスタチェーンがあるときに、ファイル等を検索する場合には、検索処理の途中でＦＡＴによるクラスタチェーンの解析処理を行うようになっているため、例えば、低消費電力化や小型化といった要求のために、ハードウエア性能に厳しい制約がある組み込み機器に適用した場合、多くの時間が掛かってしまい、その結果、検索に要する時間が増大してしまう恐れがあった。
【０００６】
本発明は、上記従来技術の未解決の問題点を解決することを目的とするものであって、クラスタチェーンに関するソフトウェア処理（ファームウェア処理）を高速化することが可能なファイル管理プログラム、及びファイル管理装置を提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のファイル管理プログラムは、ＦＡＴファイルシステムに基づき、各ディレクトリに関するディレクトリ項目をクラスタチェーンを用いて記録するファイル管理プログラムであって、前記ディレクトリ項目を格納しているクラスタを示すクラスタチェーン情報を、当該クラスタチェーン情報を記録するためのディレクトリクラスタチェーン項目に記録する記録機能をコンピュータに実行させることを特徴とする。
【０００８】
また、前記ディレクトリクラスタチェーン項目から前記クラスタチェーン情報を取得する情報取得機能をコンピュータに実行させるようにしてもよい。
一方、上記課題を解決するために、本発明のファイル管理装置は、ＦＡＴファイルシステムに基づき、各ディレクトリに関するディレクトリ項目をクラスタチェーンを用いて記録するファイル管理装置であって、前記ディレクトリ項目を格納しているクラスタを示すクラスタチェーン情報を、当該クラスタチェーン情報を記録するためのディレクトリ項目に記録する記録手段を備えたことを特徴とする。
【０００９】
また、前記ディレクトリクラスタチェーン項目から前記クラスタチェーン情報を取得する情報取得手段を備えるようにしてもよい。
このような構成によれば、例えば、所定のディレクトリ内のファイルやサブディレクトリのディレクトリ項目が複数のクラスタ領域にまたがって記録されているとき（クラスタチェーンがあるとき）に、クラスタチェーンの解析が必要な処理を行う場合には、ディレクトリクラスタチェーン項目のフィールド値を解析させることで、クラスタチェーン情報を取得させることができる。そのため、例えば、ＦＡＴを参照してクラスタチェーンを解析させることでクラスタチェーン情報を取得させる方法に比べ、クラスタチェーンに関するソフトウェア（ファームウェア）処理の高速化（改善）を図ることが可能である。
【発明を実施するための最良の形態】
【００１０】
以下、本発明のファイル管理プログラムの実施形態として、画像データを生成可能なＣＣＤカメラ等の撮像ユニットを備える携帯端末に適用した例を図面に基づいて説明する。
即ち、この携帯端末１にあっては、撮像ユニットで画像データが生成されると、指定されたディレクトリを示すサブディレクトリ指示項目によって示されるクラスタ（先頭クラスタ）内に、前記生成された画像データのファイルのファイル名のディレクトリ項目を記録できるだけの領域が残っているか否かを判定する。残っていない場合には、前記先頭クラスタに引き続く新しいクラスタを確保し、その新しく確保されたクラスタのクラスタ番号を示すフィールド値をディレクトリクラスタチェーン項目（本発明で新しく設けた項目）のクラスタチェーン情報フィールドに記録し、また、ファイル名のディレクトリ項目を前記新しく確保されたクラスタに記録する。そして、この携帯端末１にあっては、クラスタチェーンの解析が必要な処理を実行するときに、ＦＡＴを解析することなく、処理対象であるファイルが記録されているディレクトリに対応するディレクトリクラスタチェーン項目を解析することで、前記処理を効率的に実行することができる。
【００１１】
＜携帯端末の構成＞
図１は、本実施形態の携帯端末の内部構成を示すブロック図である。この図１に示すように、携帯端末１は、撮像ユニット２、文字入力ユニット３、メモリーカードユニット４、表示ユニット５、Ｉ／Ｆ（InterFace）６、ＣＰＵ（Central Processing Unit）７、ＲＡＭ（Random Access Memory）８及びＲＯＭ(Read Only Memory)９を含んで構成される。そして、携帯端末１は、撮像ユニット２、文字入力ユニット３、メモリーカードユニット４及び表示ユニット５を除く各部が、バス１０で互いに接続される。
【００１２】
撮像ユニット２は、背面側の平面視上部に配され、ＣＣＤカメラ（不図示）を含んで構成される。そして、撮像ユニット２は、所定の操作がされると、被写体の画像データをＣＣＤカメラで生成し、その画像データをＩ／Ｆ６経由でＣＰＵ７に出力する。
また、文字入力ユニット３は、前面側の平面視下部に配され、任意の文字列を入力可能なキーボード（不図示）を含んで構成される。そして、文字入力ユニット３は、そのキーボードから入力される文字列の情報をＩ／Ｆ６経由でＣＰＵ７に出力する。
【００１３】
さらに、メモリーカードユニット４は、平面視左端部に配され、電力供給を停止してもデータを保持可能な不揮発性のメモリーカード（不図示）が着脱可能に構成される。そして、メモリーカードユニット４は、ＣＰＵ７からファイル格納指令（後述）が出力されると、ＣＰＵ７で生成されたファイル（後述）をメモリーカードに記録する。
また、メモリーカードユニット４は、ＣＰＵ７からディレクトリ項目記録指令（後述）が出力されると、後述するようにＣＰＵ７で生成されるフィールド値をディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに記録し、また、ＣＰＵ７で生成されるファイル名のディレクトリ項目をメモリーカードに記録する。さらに、メモリーカードユニット４は、ＣＰＵ７からＩ／Ｆ６経由でディレクトリ項目読出指令（後述）が出力されると、そのディレクトリ項目読出指令で指定されるファイルのファイル名のディレクトリ項目を、メモリーカードから読み出してＩ／Ｆ６経由でＣＰＵ７に出力する。
【００１４】
さらに、表示ユニット５は、前面側の平面視中央部に配され、任意の画像を表示可能な表示装置（不図示）を含んで構成される。そして、表示ユニット５は、ＣＰＵ７からＩ／Ｆ６経由で処理結果が出力されると、その出力された処理結果を表示装置に表示させる。
また、Ｉ／Ｆ６は、携帯端末１が備える各ユニット２〜５間や、各ユニット２〜５とＣＰＵ７との間で授受されるデータを受信側２〜５、７が読込可能な形式に変換する。
【００１５】
さらに、ＣＰＵ７は、ＲＯＭ９に記録されている基本制御プログラム(OS:Operating System)や、アプリケーションプログラム等の各種プログラムを読み出し、それら読み出された各種プログラムを実行して、携帯端末１が備える各部２〜９を制御する。
また、ＣＰＵ７は、撮像ユニット２から画像データが出力されると、その出力された画像データのファイルを生成する。また、ＣＰＵ７は、その生成されたファイル（以下、「新生成ファイル」とも呼ぶ。）を記録するディレクトリのファイルパス、及び新生成ファイルのファイル名として文字入力ユニット３から文字列の情報が入力されると、その新生成ファイルをメモリーカードに記録させる指令（以下、「ファイル格納指令」とも呼ぶ。）をＩ／Ｆ６経由でメモリーカードユニット４に出力し、また同時に、書き込み処理（後述）を実行する。そして、ＣＰＵ７は、書き込み処理が実行されると、ファイル名のディレクトリ項目を記録できるだけの領域が、前記ディレクトリを示すサブディレクトリ指示項目が示すクラスタに残っているか否かを判定する。前記領域が残っていない場合には、前記ディレクトリ項目を記録可能な空きクラスタのクラスタ番号を示すフィールド値をディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに記録させ、さらに、前記ファイル名のディレクトリ項目を記録させるディレクトリ項目記録指令をＩ／Ｆ６経由でメモリーカードユニット４に出力してから、この演算処理を終了する。
【００１６】
具体的には、ディレクトリクラスタチェーン項目は、図２に示すように、インデックスフィールド、クラスタチェーン情報フィールド、予約フィールド、属性フィールド、及びチェックサムフィールドで構成される。
インデックスフィールドには、ディレクトリクラスタチェーン項目の番号（何番目のディレクトリクラスタチェーン項目であるのかを示す番号）を１６進数表記したものを設定する。なお、最後のディレクトリクラスタチェーン項目には、ディレクトリクラスタチェーン項目の終端を示すビット（ビット７）を設定する。そのため、このビットを、ファームウェアの内部処理のチェックフラグとして利用でき、安全性を高めることができる。
【００１７】
クラスタチェーン情報フィールドには、サブディレクトリ識別項目の先頭クラスタ番号フィールドのフィールド値が示すクラスタ（先頭クラスタ）に引き続くクラスタのクラスタ番号を１６進数表記したものを設定する。なお、クラスタチェーン情報フィールドの領域は、ＦＡＴ３２では４バイト（３２ビット）、ＦＡＴ１６では２バイト（１６ビット）、ＦＡＴ１２では３バイト（２４ビット、注：フィールド情報は２個分が入る（１２ビット×２））とする。また、クラスタチェーン情報フィールドの数（ディレクトリ項目に記録可能なクラスタの数）は、ＦＡＴ３２では６個、ＦＡＴ１６では１３個、ＦＡＴ１２では１６個（８個のフィールドに２情報）とする。
【００１８】
予約フィールドには、ＦＡＴファイルシステムのロングファイルネーム項目（ＶＦＡＴ動作時に、ロングファイルネームを表すディレクトリ項目）と同じものを設定する。
属性フィールドには、このディレクトリ項目が、クラスタチェーン項目であることを示す情報（例えば、「０ｘ０Ｆ＆０ｘ４０」）を設定する。なお、ロングファイルネーム項目の属性フィールドには、フィールド値「０ｘ０Ｆ」が設定される。
【００１９】
チェックサムフィールドには、ショートファイルネームを表すディレクトリ項目のチェックサムと一致しない数値「０ｘ００」を設定する。なお、ロングファイルネーム項目のチェックサムフィールドには、通常、前記チェックサムと一致する数値が設定される。
したがって、ＶＦＡＴが搭載されていない動作環境では、属性フィールドの下位４ビット「０ｘ０Ｆ」により、このディレクトリ項目は無視される。なお、本実施形態では、属性フィールドに「０ｘ０Ｆ＆０ｘ４０」を設定する例を示したが、これに限られるものではなく、ディレクトリクラスタチェーン項目であることを示す他の情報でもよい。
【００２０】
また同様に、ＶＦＡＴが搭載されている動作環境にあっても、チェックサムフィールドのフィールド値（ショートファイルネームを表すディレクトリ項目のチェックサムと一致しないフィールド値「０ｘ００」）により、このディレクトリ項目は無視される。
また、ＣＰＵ７は、メモリーカードに記録されている複数のファイルに、クラスタチェーンの解析が必要な処理を実行するために、処理対象となるファイルのファイルパスとして文字入力ユニット３から文字列の情報が入力されると読み込み処理（後述）を実行する。そして、ＣＰＵ７は、読み込み処理が実行されると、ディレクトリ項目読出指令をＩ／Ｆ６経由でメモリーカードユニット４に出力して、各ファイルのファイル名のディレクトリ項目をメモリーカードから順次読み出す。また、ＣＰＵ７は、その読み出されたディレクトリ項目に基づいて前記処理を実行し、その処理結果を表示ユニット５に表示させてから、この読み込み処理を終了する。なお、読み込み処理の実行中に、先頭クラスタからファイル名のディレクトリ項目を全て読み出し終えた場合には、ディレクトリクラスタチェーン項目を読み出し、そのディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドのフィールド値を読み出す。そして、その読み出されたフィールド値が示すクラスタ番号に記録されているファイル名のディレクトリ項目を読み出す。
【００２１】
さらに、ＲＡＭ８は、ＣＰＵ７で実行される各種プログラムを展開するためのワークエリアと、それら各種プログラムの実行時に用いられるデータを記録するためのメモリ領域とを形成する。そして、ＲＡＭ８は、ＣＰＵ７から読み出し要求が出力されると、ＲＡＭ８に記録されているデータから当該読み出し要求に応じたデータをＣＰＵ７に出力する。
また、ＲＯＭ９は、ＣＰＵ７で実行される各種プログラムとデータとを記録する。そして、ＲＯＭ９は、ＣＰＵ７から読み出し要求が出力されると、ＲＯＭ９に記録されているプログラムやデータから当該読み出し要求に応じたプログラム等をＣＰＵ７に出力する。
【００２２】
＜携帯端末の動作＞
次に、ＣＰＵ７で実行される書き込み処理を、図３のフローチャートに従って説明する。この書き込み処理は、新生成ファイルを記録するディレクトリのファイルパス、及び新生成ファイルのファイル名の組み合わせとして、文字入力ユニット３から文字列の情報が入力されると実行される。そして、この演算処理が実行されると、まず、そのステップＳ１０１で、ＦＡＴファイルシステムの規格に従い、前記入力された文字列の情報に基づいて、前記新生成ファイルのファイル名のディレクトリ項目（ファイル項目、ロングファイルネームが指定された場合は、ロングファイルネーム項目）を生成する。そして、その生成されたディレクトリ項目を、前記ディレクトリを示すサブディレクトリ指示項目の先頭クラスタ番号フィールドに記録されているフィールド値が示すクラスタ（先頭クラスタ）に記録させる指令をメモリーカードユニット４に出力する。なお、前記先頭クラスタに、前記ディレクトリ項目を記録できるだけの領域が残っていない場合には、前記先頭クラスタに引き続く新しいクラスタを確保し、その確保されたクラスタに当該ディレクトリ項目を記録させる指令を出力する。また、その際、実際に確保したクラスタのクラスタ番号を一時的なバッファに記録する。
【００２３】
次にステップＳ１０２に移行して、前記ステップＳ１０１で新しく確保されたクラスタのクラスタ番号を、ディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに設定する。
具体的には、クラスタチェーン情報フィールドには、前記ステップＳ１０１で一時的なバッファに記録しておいたクラスタ番号をディレクトリ項目の先頭から記録する。また、クラスタチェーンの終端が明確となるように、クラスタチェーンの終端に対応するクラスタ番号を記録しているフィールドより後のクラスタチェーン情報フィールドには、「オールＦＦ」を記録する。なお、その際、ファイルシステムのフォーマット種別（ＦＡＴ１２、ＦＡＴ１６、ＦＡＴ３２）に応じて、各フィールドの配置フォーマットを設定する。
【００２４】
次にステップＳ１０３に移行して、ディレクトリクラスタチェーン項目の予約フィールド、属性フィールド、及びチェックサムフィールドにフィールド値を設定する。具体的には、予約フィールドには、ロングファイルネーム項目と同じフィールド値を設定する。また、属性フィールドには、「０ｘ０Ｆ＆０ｘ４０」を設定する。そして、チェックサムフィールドには、「０ｘ００」を設定する。
【００２５】
次にステップＳ１０４に移行して、ディレクトリクラスタチェーン項目が引き続くか否かを判定する。具体的には、前記ディレクトリのクラスタチェーンが長く、１個のディレクトリクラスタチェーン項目では後続するクラスタ番号を記録しきれないか否かを判定する。そして、１個のディレクトリクラスタチェーン項目では記録しきれない場合には、ステップＳ１０５に移行し、記録できる場合には、ステップＳ１０６に移行する。
【００２６】
前記ステップＳ１０５では、ディレクトリクラスタチェーン項目のインデックスフィールドのフィールド値を設定し、また、新しいクラスタチェーン項目を生成した後、前記ステップＳ１０２に移行する。なお、その際、ディレクトリクラスタチェーン項目がセクタ領域の先頭に記録されていた場合、つまり、新しいディレクトリクラスタチェーン項目を記録可能な空き領域がない場合には、次のセクタに生成する。また、当該次のセクタが、クラスタ領域の最終セクタである場合には、新しいクラスタ領域を確保して生成するクラスタアロケート処理を行う。
【００２７】
なお、新しく生成したディレクトリクラスタチェーン項目を記録するタイミングとしては、例えば、生成のたびに記録するようにしてもよいし、最後に一括して記録するようにしてもよく、このファイルシステムが実装される製品の仕様に応じて設定すればよい。
一方、前記ステップＳ１０６では、ディレクトリクラスタチェーン項目のインデックスフィールドにフィールド値とビット７とを設定する。
【００２８】
次にステップＳ１０７に移行して、前記ステップＳ１０２〜Ｓ１０６で設定されたフィールド値を、ディレクトリクラスタチェーン項目の各フィールドに記録させる指令（以下、「ディレクトリ項目記録指令」とも呼ぶ。）をメモリーカードユニット４に出力する。
次にステップＳ１０８に移行して、ＦＡＴファイルシステムの規格に従い、通常のファイルシステム処理を実行してから、この演算処理を終了する。
【００２９】
次に、ＣＰＵ７で実行される読み込み処理を、図４のフローチャートに従って説明する。この読み込み処理は、メモリーカードに記録されている複数のファイルに、クラスタチェーンの解析が必要な処理を実行するために、処理対象となるファイルが記録されているディレクトリのファイルパスとして文字入力ユニット３から文字列の情報が入力されると実行される処理であって、まず、そのステップＳ２０１で、文字入力ユニット３から情報が入力された文字列（ファイルパス）のディレクトリを指示するサブディレクトリ指示項目を読み出してＣＰＵ７に出力させる指令（以下、「ディレクトリ項目読出指令」とも呼ぶ。）をＩ／Ｆ６経由でメモリーカードユニット４に出力する。
【００３０】
次にステップＳ２０２に移行し、ディレクトリクラスタチェーン項目、あるいは後述するステップＳ２０５で特定されたディレクトリクラスタチェーン項目の属性フィールドのフィールド値が「０ｘ４Ｆ」であることを確認する。
次にステップＳ２０３に移行して、ディレクトリクラスタチェーン項目、あるいは後述するステップＳ２０５で特定されたクラスタチェーン項目の先頭のクラスタチェーン情報フィールドから順番にフィールド値を取得する。なお、その際、「オールＦＦ」が記録されているフィールドの前までが有効なクラスタチェーン情報である。また、ファイルシステムのフォーマット種別に応じてディレクトリクラスタチェーン項目の各フィールドはフォーマットが異なるので、そのフォーマット種別を参照して、各クラスタチェーン情報フィールドからクラスタチェーン情報を取得する。
【００３１】
次にステップＳ２０４に移行して、ディレクトリクラスタチェーン項目が引き続くか否かを判定する。具体的には、ディレクトリクラスタチェーン項目のインデックスフィールドにディレクトリクラスタチェーン項目の終端を示すビット（ビット７）が記録されていないか否かを判定する。そして、ディレクトリクラスタチェーン項目の終端を示すビットが記録されていない場合には（Ｙｅｓ）ステップＳ２０５に移行し、記録されている場合には（Ｎｏ）ステップＳ２０６に移行する。
【００３２】
前記ステップＳ２０５では、ディレクトリクラスタチェーン項目に引き続くディレクトリクラスタチェーン項目を特定してから、前記ステップＳ２０２に移行する。なお、その際、ディレクトリクラスタチェーン項目がセクタ領域の先頭に記録されていた場合には、次のセクタから特定する。また、当該セクタがクラスタ領域の最終セクタである場合には、次のクラスタから特定する。
【００３３】
一方、前記ステップＳ２０６では、ＦＡＴファイルシステムの規格に従い、通常のファイルシステム処理を実行し、その処理結果をＩ／Ｆ６経由で表示ユニットに出力してから、この演算処理を終了する。なお、その際、クラスタチェーンの情報が必要となった場合には、上記フローで取得したフィールド値を参照し、ＦＡＴの走査処理は一切行わない。
【００３４】
＜携帯端末の具体的動作＞
次に、本実施形態の携帯端末１の動作を具体的状況に基づいて詳細に説明する。
＜ファイルの生成＞
まず、被写体の画像データが撮像ユニット２のＣＣＤカメラで生成されたとする。すると、図１に示すように、撮像ユニット２によって、その生成された画像データがＣＰＵ７に出力され、ＣＰＵ７によって、その画像データのファイルが生成される。
【００３５】
次いで、その生成されたファイル（新生成ファイル）を記録するディレクトリのファイルパス（メモリーカード内の任意のディレクトリのファイルパス）、及び新生成ファイルのファイル名の組み合わせとして、利用者が文字入力ユニット３のキーボードから文字列を入力したとする。すると、ＣＰＵ７によって、ファイル格納指令がＩ／Ｆ６経由でメモリーカードユニット４に出力される。そして、メモリーカードユニット４によって、前記生成された新生成ファイルが前記サブディレクトリに格納される。
【００３６】
また同時に、ＣＰＵ７によって、書き込み処理が実行され、その際、前記ファイル名を記録するためのディレクトリ項目を記録可能な領域が、前記ディレクトリを示すサブディレクトリ指示項目の先頭クラスタ番号フィールドが示すクラスタ（先頭クラスタ）内になかったとする。すると、図３に示すように、まずそのステップＳ１０１で、ＦＡＴファイルシステムの規格に従い、前記入力された文字列の情報に基づいて、前記新生成ファイルのファイル名のディレクトリ項目が生成される。そして、メモリーカードユニット４によって、前記先頭クラスタに引き続くクラスタ（クラスタ番号１００）が確保され、また、前記生成されたディレクトリ項目が前記確保されたクラスタに記録される。
【００３７】
また、ステップＳ１０２で、前記確保されたクラスタのクラスタ番号１００が、図５に示すように、ディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに設定される。さらに、ステップＳ１０３で、前記ディレクトリクラスタチェーン項目の予約フィールドに、ロングファイルネーム項目と同じフィールド値が設定され、属性フィールドにフィールド値「０ｘ０Ｆ＆０ｘ４０」が設定され、チェックサムフィールドにフィールド値「０ｘ００」が設定される。そして、ステップＳ１０４の判定が「Ｎｏ」となり、ステップＳ１０６で、前記ディレクトリクラスタチェーン項目のインデックスフィールドにフィールド値とビット７とが設定される。
【００３８】
そして、ステップＳ１０７で、ディレクトリ項目記録指令がＩ／Ｆ６経由でメモリーカードユニット４に出力され、メモリーカードユニット４によって、上記フローで設定されたフィールド値それぞれが、前記ディレクトリクラスタチェーン項目の各フィールドに記録され、ステップＳ１０８で、通常のファイルシステム処理が実行される。
【００３９】
＜ファイルの処理＞
また、上記フローが繰り返し実行され、複数のファイルがメモリーカード内に記録された後に、メモリーカード内に記録されている所定のディレクトリ内の複数のファイルに、クラスタチェーンの解析が必要な処理を実行するために、処理対象となるファイルが記録されているディレクトリのファイルパスとして利用者が文字入力ユニット３から文字列の情報を入力したとする。すると、ＣＰＵ７によって、読み込み処理が実行され、図４に示すように、まず、そのステップＳ２０１で、ディレクトリ項目読出指令がＩ／Ｆ６経由でメモリーカードユニット４に出力される。そして、メモリーカードユニット４によって、前記利用者によって指定されたファイルパスに対応するディレクトリのサブディレクトリ指示項目がメモリーカードから読み出されてＣＰＵ７に出力される。
【００４０】
また、ステップＳ２０２で、ディレクトリクラスタチェーン項目の属性フィールドのフィールド値が「０ｘ４Ｆ」であることが確認され、ステップＳ２０３で、前記ディレクトリクラスタチェーン項目の先頭のクラスタチェーン情報フィールドから順番に有効なフィールド値が取得される。つまり、ＦＡＴの走査をすることなしに、先頭クラスタに続くクラスタのクラスタチェーンの情報が取得される。
【００４１】
ここで、前記ディレクトリクラスタチェーン項目のインデックスフィールドにビット７が記録されていたとする。すると、ステップＳ２０４の判定が「Ｎｏ」となり、ステップＳ２０６で、ＦＡＴファイルシステムの規格に従い、通常のファイルシステム処理が実行され、その処理結果がＩ／Ｆ６経由で表示ユニットに出力される。そして、表示ユニット５によって、その出力された処理結果の画像データが表示装置に表示される。
【００４２】
このように、本実施形態の携帯端末１にあっては、ディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに、先頭クラスタに引き続くクラスタのクラスタ番号を記録するようにした。そのため、所定のディレクトリ内のファイルのディレクトリ項目やディレクトリのディレクトリ項目が複数のクラスタにまたがって記録されているとき（クラスタチェーンが生成されているとき）に、各ディレクトリ項目に対して所定の処理を行う場合には、ディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに記録されているフィールド値を解析させることで、先頭クラスタに引き続くクラスタのクラスタ番号を取得することができる。そのため、例えば、ＦＡＴを参照してクラスタチェーンの解析処理することで後続するクラスタを特定する方法に比べ、クラスタチェーンに関するソフトウェア（ファームウェア）処理の高速化を図ることが可能である。
【００４３】
また、ディレクトリクラスタチェーン項目以外のディレクトリ項目は、ＦＡＴファイルシステムの規格に従って設定した。そのため、携帯端末１で生成されたファイルは、ＦＡＴファイルシステムを搭載したパソコンでも適切に認識させることができ、それらのパソコンでファイルをそのまま扱わせることができる。即ち、従来のファイルシステムに大幅な改修や変更をせずに、従来のＦＡＴファイルシステムをベースとして実装を図ることができ、導入に必要なプロセスを最小限に留めることができる。さらに、従来のＦＡＴファイルシステム及びＶＦＡＴファイルシステム上でも正常に認識され互換性を保持できる。
【００４４】
さらに、クラスタチェーン情報を専用のディレクトリ項目（ディレクトリクラスタチェーン項目）のフィールドに記録するようにした。そのため、クラスタチェーンが長くなり、それまでのディレクトリクラスタチェーン項目に、後続するクラスタ番号を記録しきれなくなった場合には、新しいディレクトリクラスタチェーン項目を生成し、そのディレクトリクラスタチェーン項目のフィールドに前記後続するクラスタ番号を記録できる。
【００４５】
以上、図３のステップＳ１０６が特許請求の範囲に記載の記録機能を構成し、以下同様に、図４のステップＳ２０１が情報取得機能を構成し、図１のメモリーカードユニット４、ＣＰＵ７、図３のステップＳ１０６が記録手段を構成し、図１のメモリーカードユニット４、ＣＰＵ７、図４のステップＳ２０１が情報取得手段を構成する。
なお、本発明のファイル管理プログラム及びファイル管理装置は、上記実施の形態の内容に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【図面の簡単な説明】
【００４６】
【図１】実施形態における携帯端末の内部構成を示すブロック図である。
【図２】ディレクトリクラスタチェーン項目を説明するための説明図である。
【図３】書き込み処理のフローチャートである。
【図４】読み込み処理のフローチャートである。
【図５】携帯端末の動作を説明するための説明図である。
【符号の説明】
【００４７】
１は携帯端末、２は撮像ユニット、３は文字入力ユニット、４はメモリーカードユニット、５は表示ユニット、６はＩ／Ｆ、７はＣＰＵ、８はＲＡＭ、９はＲＯＭ、１０はバス
【図１】
2006309536.tif 000003
【図２】
2006309536.tif 000004
【図３】
2006309536.tif 000005
【図４】
2006309536.tif 000006
【図５】
2006309536.tif 000007