(57)【要約】【課題】記憶装置に記憶されたファイルの数にかかわらず、高速にファイルを検索する。【解決手段】プロセッサ１０内で、インデックス生成部１４は、ファイル名とインデックスが一対一対応の関数を用いて、読出対象ファイルを表すファイル名から、読出対象ファイルのファイル管理情報を示すインデックスを生成する。インデックス・ファイル管理情報対応付け部１５は、インデックス順にファイル管理情報が並んだファイル管理情報配列１３から、インデックス生成部１４で生成されたインデックスに対応するファイル管理情報を読み出して、ファイル管理情報に指定された読出対象ファイルに関する記憶装置３０内の格納位置を得る。【選択図】        図１
2004185214.tif 000002
【特許請求の範囲】
【請求項１】
ファイル名とインデックスが一対一対応の関数を用いて、読出対象ファイルを表すファイル名から、前記読出対象ファイルの記憶装置内での格納位置を指定したファイル管理情報を示すインデックスを生成するインデックス生成部と、
記憶装置から前記読出対象ファイルを読み出すために、インデックス順にファイル管理情報が並んだファイル管理情報配列から、インデックス生成部で生成された前記インデックスに対応するファイル管理情報を読み出して、前記ファイル管理情報に指定された前記読出対象ファイルに関する前記記憶装置内の格納位置を得る記憶装置アクセス制御部とを備えたファイル管理装置。
【請求項２】
インデックス生成部が、
ファイル名がファイル自体とともにそのファイルのディレクトリを表す方式に従って作成された、読出対象ファイルを表すファイル名から前記読出対象ファイルのディレクトリを表す第１の部分を抽出する第１の抽出部と、
第１の部分とディレクトリのベース位置が一対一対応の関数を用いて、前記第１の部分からディレクトリのベース位置を生成する第１の生成部と、
前記ファイル名からファイル自体を表す第２の部分を抽出する第２の抽出部と、
第２の部分とインデックス要素が一対一対応の関数を用いて、前記第２の部分からインデックス要素を生成する第２の生成部と、
前記ベース位置と前記インデックス要素とを組み合わせてインデックスを生成する組合わせ部とを備えたことを特徴とする請求項１記載のファイル管理装置。
【請求項３】
インデックス生成部が、ファイル名から抽出した部分をそのままインデックスとすることを特徴とする請求項１または請求項２記載のファイル管理装置。
【請求項４】
問い合わせ対象のファイル名が記憶装置で既に使用されているか否かの問い合わせに応じて、ファイル名とインデックスが一対一対応の関数を用いて、問い合わせ対象のファイル名からインデックスを生成する第２のインデックス生成部と、
ファイル名に対応するファイルが既に前記記憶装置に記憶されているか否かを示すファイル名使用状況情報がインデックス順に並んだファイル名使用状況情報配列から、第２のインデックス生成部が生成したインデックスを用いて前記問い合わせ対象のファイル名のファイル名使用状況情報を読んで、前記問い合わせ対象のファイル名に対応するファイルが既に記憶装置に記憶されているか否かを判断するファイル名使用状況判断部とをさらに備えることを特徴とする請求項１から請求項３のうちのいずれか１項記載のファイル管理装置。
【請求項５】
記憶装置で使用されていない未使用ファイル名の問い合わせに応じて、インデックス候補を逐次生成するインデックス候補生成部と、
ファイル名に対応するファイルが既に記憶装置に記憶されているか否かを示すファイル名使用状況情報がインデックス順に並んだファイル名使用状況情報配列から、前記インデックス候補生成部が生成した前記インデックス候補に対応するファイル名使用状況情報を読んで、前記インデックス候補に対応するファイル名が既に記憶装置で使用されているか否かを判断するファイル名使用状況判断部と、
対応するファイル名が記憶装置で使用されていないと前記ファイル名使用状況判断部で判断されたインデックス候補から、ファイル名とインデックス候補が一対一対応の関数を用いて、未使用ファイル名を生成するファイル名生成部とをさらに備えることを特徴とする請求項１から請求項３のうちのいずれか１項記載のファイル管理装置。
【請求項６】
インデックス生成部がインデックス生成に使用する関数の逆関数をファイル名生成部がインデックスに適用することによって未記憶ファイル名を生成することを特徴とする請求項５記載のファイル管理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、記憶装置を有する電気機器の内部に配置されて要求に応じてファイルの検索を行うファイル管理装置に関するものである。
【０００２】
【従来の技術】
情報処理装置内のファイル管理システムに採用されたファイル検索方法の一つとして、目的のファイルに到達するまで、ファイルの順序に従ってファイルの先頭から連続的にファイルにアクセスするシーケンシャルアクセスがある。例えば、ＭＳ−ＤＯＳ（登録商標）で採用されているファイル管理システムは、シーケンシャルアクセスを行うファイルアロケーションテーブル方式である。しかし、シーケンシャルアクセスには、記憶装置に多数のファイルが記憶された場合には、目的のファイルに到達するまでの時間が長くなりがちであるという難点がある。
【０００３】
高速検索を実現する方法には、ファイルの検索キーをハッシュ関数で変換してアドレスを得るハッシュ法がある。ファイルの検索時に、登録時に使用したハッシュ関数を使うことによって目的のファイルに到達することができる。例えば特許文献１に開示された技術では、ファイル名コードを検索キーとしてハッシュ関数で変換し、変換結果をファイルの検索に供する。しかし、ハッシュ関数は多対一対応の関数であるため、変換結果が衝突する場合がある。そこで、同文献に開示された技術では、ハッシュ関数の演算結果が同じファイルを一つの群（ディレクトリ）に属すると想定し、そのディレクトリに属するファイルをシーケンシャルアクセスして所望のファイルを見つけ出す。
【０００４】
【特許文献１】
特開２０００−３５７１１５公報
【０００５】
【発明が解決しようとする課題】
しかし、同文献に記載の技術では、ハッシュ関数の演算結果が衝突するファイルの数が多くなれば、シーケンシャルアクセスへの依存性が高くなり、やはり目的のファイルに到達するまでの時間が長くなると予測される。
【０００６】
近年では、多種の電気機器にハードディスクその他の記憶装置が搭載され、記憶装置に格納されたファイルを電気機器内で処理するようになってきている。これらの電気機器としては、音楽、動画像と音声、または画像を扱うものがあり、このような電気機器では、製品の性質上、ユーザに不快感を与えないようにできるだけ高速で再生したいファイルを検索する必要がある。
【０００７】
この発明は、上述のような課題を解決するためになされたものであり、記憶装置に記憶されたファイルの数にかかわらず、高速にファイルを検索することができるファイル管理装置を得ることを目的とする。
【０００８】
【課題を解決するための手段】
この発明に係るファイル管理装置は、ファイル名とインデックスが一対一対応の関数を用いて、読出対象ファイルを表すファイル名から、前記読出対象ファイルの記憶装置内での格納位置を指定したファイル管理情報を示すインデックスを生成するインデックス生成部と、記憶装置から前記読出対象ファイルを読み出すために、インデックス順にファイル管理情報が並んだファイル管理情報配列から、インデックス生成部で生成された前記インデックスに対応するファイル管理情報を読み出して、前記ファイル管理情報に指定された前記読出対象ファイルに関する前記記憶装置内の格納位置を得る記憶装置アクセス制御部とを備えたものである。
【０００９】
【発明の実施の形態】
以下、図面を参照しながらこの発明に係る様々な実施の形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１に係るファイル管理装置を備えた電気機器の一部を示すブロック図である。この電気機器は、ファイル管理装置として機能するプロセッサ１０と電子データを記憶する記憶装置３０を備える。この発明が適用されうる電気機器は、記憶装置を有するいかなる電気機器であってもよく、例えばオーディオ再生装置、ビデオ再生装置、電子アルバム、デジタルスチルカメラが含まれる。
【００１０】
プロセッサ１０は、機能すなわち実行するモジュールに応じて便宜的に、記憶アクセス部１１、ファイル管理情報付与部１２、インデックス生成部１４、インデックス・ファイル管理情報対応付け部（記憶装置アクセス制御部）１５、および読出アクセス部（記憶装置アクセス制御部）１６に分類される。
【００１１】
記憶装置３０は、例えばハードディスク、メモリカード、メモリスティックなどの固定的に電子データを記憶しうる記憶装置であって、好ましくはサイズの異なるファイルを格納する能力を有する。例えばオーディオ再生装置、ビデオ再生装置、または電子アルバムでは、音楽、動画像と音声、または画像ファイルが記憶装置３０に格納される。
【００１２】
実施の形態に係る電気機器は、本来的な用途を達成するための他の構成要素も有する。例えばオーディオ再生装置では、記憶装置３０から読み出されたファイルに基づいて音楽を再生するための各種の構成要素を有する。ただし、そのような構成要素の図示は省略する。
【００１３】
図２はこの発明の実施の形態１で利用される原理を示す。この実施の形態に係る電気機器ではシステム上、図２に例示されるような規則的なファイル名の命名規則を使用する。図２の例では、ファイル名は、接頭語「ＤＳＣ」と５桁の数字と接尾語（ファイル識別子）を有する。例えばデジタルスチルカメラでは撮影するたびに、既に使用したファイル名のうち最大の数字を持つファイル名の数字に１を加え、これを最新ファイルのファイル名とする。すなわち、電気機器が新たにファイルを作成するたびに、「ＤＳＣ０００００．ｊｐｇ」、「ＤＳＣ００００１．ｊｐｇ」、「ＤＳＣ００００２．ｊｐｇ」…といった順序でファイル名が最新ファイルの名前として使用されてゆく。この実施の形態の動作は、このようにファイル名が一定パターンに従っていることを前提とする。ただし、この一定パターンに従っていれば、ファイル名はファイルの作成または取り込み順序に対応していなくてもよいし、保存しようとするファイルのファイル名を電気機器のシステムが作成するのではなく、ファイルを保存しようとするユーザが決定してもよい。
【００１４】
特定のファイルを記憶装置から読み出す場合には、この電気機器では、指定されたファイル名のうち数字の第４文字および第５文字をファイルの読み出しのためのインデックス（後述する）として使用する。換言すれば、各ファイル名から数字の第４文字および第５文字を抽出してそのままインデックスとする関数ｆが使用され、この関数ｆによりファイル名から一義的なインデックスが写像される。図２から明らかなように、この関数ｆの逆関数は、インデックスを５桁の数値になるように上位の桁に０を与えて、その数値に接頭語「ＤＳＣ」と接尾語を付与することであり、この逆関数によれば、インデックスから一義的なファイル名が得られる。従って、ファイル名とインデックスは完全に一対一の関係にある。
【００１５】
図１に戻りこのプロセッサ１０の動作について説明する。以下の動作は、プロセッサ１０がプログラムに従って実行する。
電気機器で作成されたか、外部から電気機器に取り込まれたファイルについてユーザからの記憶指令があると、プロセッサ１０の記憶アクセス部１１はそのファイルを記憶装置３０に記憶する。また、記憶アクセス部１１は、そのファイルのファイル名、ファイルサイズ、作成日時、ファイル格納位置（例えば記憶装置３０がハードディスクならクラスタ）、ファイルの属性およびその他の記述を含む情報をファイル管理情報付与部１２に通知する。ファイル名は記憶アクセス部１１が自動的に付与してもよいし、ユーザが付与してもよい。
【００１６】
ファイル管理情報付与部１２は、記憶アクセス部１１から通知された情報を、記憶装置３０に記憶したファイルを管理するためのファイル管理情報として、ファイル管理情報配列１３に加える。このファイル管理情報配列１３は、プロセッサ１０が使用されているときには、プロセッサ１０が迅速にアクセスすることができるように図示しない一時記憶装置（例えばプロセッサ１０の内蔵装置または周辺装置としてのランダムアクセスメモリ）に記憶されている。ファイル管理情報配列１３は、プロセッサ１０の起動時に固定的な記憶装置（記憶装置３０と同じでもよいし、図示しない別個の記憶装置でもよい）からその一時記憶装置に転送され、適切な時期に一時記憶装置から固定的な記憶装置に転送されて固定的に更新保存されるようになっている。
【００１７】
図３に示すように、ファイル管理情報配列１３は、一つ以上のファイルの管理情報を有する。ファイル管理情報配列１３における各ファイル管理情報の格納位置を表す番号がインデックスである。ファイル管理情報配列１３では、インデックスの示す番号の順序通りにファイル管理情報が並んでいる。例えば、ファイル名「ＤＳＣ０００００．ｊｐｇ」というファイルの管理情報はインデックス０で識別される位置に格納されている。従って、あるファイルを読み出す場合には、そのファイルのインデックスが得られれば、インデックスに対応するファイル管理情報に直ちにアクセスでき、そのファイル管理情報から所望のファイルの格納位置を得てファイルにアクセスすることができる。
【００１８】
ファイル管理情報をファイル管理情報配列１３に追加するときには、ファイル管理情報付与部１２は、ファイル名に関数ｆ（図２）を適用してインデックスを生成する。例えば、ファイル名「ＤＳＣ００００１．ｊｐｇ」からインデックス１を得る。そして、ファイル管理情報配列１３内のそのインデックスが示す位置に、そのファイルに関するファイル管理情報を追加する。
【００１９】
一方、ユーザがあるファイルを読み出そうとする場合には、ユーザは図示しないマンマシンインタフェースを用いてファイル名を指定する。ファイル名はインデックス生成部１４に通知され、この通知を受けてインデックス生成部１４はそのファイル名に関数ｆを適用してインデックスを生成し、インデックス・ファイル管理情報対応付け部１５にインデックスを通知する。
【００２０】
インデックス・ファイル管理情報対応付け部１５は、ファイル管理情報配列１３内のインデックスが示す位置から、目的のファイルに対応するファイル管理情報を読み出し、読出アクセス部１６に通知する。そのファイル管理情報中のファイル格納位置を示す記述を使用して読出アクセス部１６は記憶装置３０から目的のファイルを読み出す。このようにして、目的のファイルを例えば本来の用途に供することが可能である。
【００２１】
以上のように、この実施の形態１によれば、ファイル名とインデックスが一対一対応の関数ｆを用いて、読出対象ファイルを表すファイル名からインデックス生成部１４がインデックスを生成する。ファイル管理情報配列１３では、インデックス順にファイル管理情報が並んでいる。換言すれば、インデックスは、ファイル管理情報配列１３内での読出対象ファイルのファイル管理情報の格納位置を表しており、このインデックスに基づいて、ファイル管理情報配列１３内の検索を行うことなく、直ちに目的のファイルのファイル管理情報が得られる。
【００２２】
この実施の形態１によれば、ＭＳ−ＤＯＳのファイルアロケーションテーブル方式またはその他のシーケンシャルアクセス方式とは異なり、記憶されているファイルを次々と辿って目的のファイルに到達する必要はない。またランダムアクセス方式とは異なり、インデックスを用いてファイル管理情報を検索する必要もない。従って、記憶装置３０に記憶されたファイルの数にかかわらず、高速にファイルを検索することができる。
【００２３】
そして、ファイル名とインデックスが一対一対応の関数ｆを用いるので、ファイル名から得られるインデックスが不定になったり互いに衝突したりすることがない。従って、他のアクセス方式による補完を行う必要もなく、確実に高速でファイルを検索することができる。
【００２４】
上述のように、ファイル名から抽出した一部分をそのままインデックスとするという簡単な関数ｆを使用すれば、プロセッサ１０の処理の負荷が軽くてすむ。
ただし、この発明をそのような単純な関数ｆおよび単純なインデックスを使用する形態に限定する意図ではなく、他の形式の複雑な一対一対応の関数を用いてもよい。
【００２５】
実施の形態２．
次にこの発明の実施の形態２を説明する。
図４はこの発明の実施の形態２で利用される原理を示す。この実施の形態に係る電気機器ではシステム上、図４に例示されるような規則的なファイル名の命名規則を使用する。図４の例では、ファイル名は、６桁の数字と接尾語（ファイル識別子、具体的にはｊｐｇ）を有する。
【００２６】
また、ユーザにとっての分類の便宜のため、このようなファイル名のうち、最初の数桁（例えば３桁）を仮のディレクトリ名とし、残りの数桁（例えば３桁）を仮のファイル名（ディレクトリ中のファイル自体を表す部分）とすることができる。このような場合には、ファイル名がファイル自体とともにそのファイルのディレクトリを表す方式に従って作成されたと考えることができる。ファイル名は、ファイルを保存しようとするユーザが決定する。この実施の形態の動作は、このようにファイル名が一定パターンに従っており、ユーザがファイル名を仮のディレクトリで分類することを前提とする。
【００２７】
特定のファイルを記憶装置から読み出す場合には、この電気機器では、図４に示すように、指定されたファイル名のうち第３文字から第６文字をファイルの読み出しのためのインデックスとして使用する。換言すれば、各ファイル名から第３文字から第６文字を抽出してそのままインデックスとする関数ｆ１が使用され、この関数ｆ１によりファイル名から一義的なインデックスが写像される。図４から明らかなように、この関数ｆ１の逆関数は、６桁の数値になるようにインデックスに０からなる上位の桁を与えて、その数値に接尾語を付与することであり、この逆関数によれば、インデックスから一義的なファイル名が得られる。従って、ファイル名とインデックスは完全に一対一の関係にある。
【００２８】
図５に示すように、この実施の形態に係るファイル管理情報配列は、便宜的にディレクトリで区分することができる。各ディレクトリには、最大で１０００個（０００〜９９９）の仮のファイルが配分される。４桁のインデックスは、ファイル管理情報配列における各ファイル管理情報の格納位置を表す。つまり、ファイル管理情報配列において、ファイル管理情報はインデックス順に並んでいる。
【００２９】
実施の形態２においても図１の構成のプロセッサ１０および記憶装置３０を使用することができる。図１を参照した実施の形態１のプロセッサ１０の動作の説明中、関数ｆ（図２）を関数ｆ１（図４）と置き換えれば、実施の形態２のプロセッサ１０の動作も理解できるはずである。
【００３０】
ただし、図６に示すように、インデックス生成部１４を変形してもよい。図６に示すインデックス生成部１４は、機能すなわち実行するモジュールに応じて便宜的に、分離部（第１の抽出部、第２の抽出部）１７、第１の生成部１８、第２の生成部１９および組合わせ部２０に細分される。
【００３１】
次に図６のインデックス生成部１４の動作を説明する。以下の動作は、プロセッサ１０がプログラムに従って実行する。
ユーザがあるファイルを読み出そうとする場合には、ユーザは図示しないマンマシンインタフェースを用いてファイル名を指定する。ファイル名はインデックス生成部１４に通知され、この通知を受けて分離部１７は、ファイル名を第１の部分と第２の部分に分離する。第１の部分とは、読出対象のファイルのディレクトリを表す部分（上記の仮のディレクトリ名）であり、第２の部分とは仮のファイル名（ディレクトリ中のファイル自体を表す部分）である。つまり、上記の例では、６桁の数字のうち最初の３桁が第１の部分、残りの３桁が第２の部分である。
【００３２】
ファイル名の第１の部分は第１の生成部１８で処理される。第１の生成部１８は、第１の部分とディレクトリのベース位置が一対一対応の関数を用いて、前記第１の部分からディレクトリのベース位置を生成する。例えば、第１の部分の下１桁の数値をディレクトリとする場合には、その数値にディレクトリ内の最大許容ファイル個数を乗算して、この結果をディレクトリのベース位置としてよい。
つまり、全体のファイル名が「００２００１．ｊｐｇ」ならば、第１の部分である「００２」に対応するディレクトリ「２」のベース位置として、２に１０００を乗じることによって２０００を得る。
【００３３】
ファイル名の第２の部分は第２の生成部１９で処理される。第２の生成部１９は、第２の部分とインデックス要素が一対一対応の関数を用いて、第２の部分からインデックス要素を生成する。例えば第２の部分をそのままインデックス要素としてよい。つまり、全体のファイル名が「００２００１．ｊｐｇ」ならば、第２の部分である「００１」をそのままインデックス要素とする。
【００３４】
組合わせ部２０は、ベース位置とインデックス要素とを組み合わせてインデックスを生成する。例えばベース位置とインデックス要素を単に合計してインデックスを得てもよい。つまり、全体のファイル名が「００２００１．ｊｐｇ」ならば、結果的に「２００１」というインデックスが得られる。このようにしてインデックスを得ると、インデックス生成部１４の組合わせ部２０は、インデックス・ファイル管理情報対応付け部１５にインデックスを通知する。
【００３５】
以上のようにしてファイルの読み出しのためにインデックスが生成される。ファイルの記憶装置３０への記憶時に使用されるファイル管理情報付与部１２が、ファイル管理情報をファイル管理情報配列１３に追加するときにも、ファイル管理情報付与部１２は、上記と同様にファイル名からインデックスを生成する。
【００３６】
上述の第１の生成部１８および第２の生成部１９の使用する関数および生成されるインデックスは単純であるが、この発明をそのような形態に限定する意図ではなく、他の形式の複雑な一対一対応の関数を用いてもよい。
【００３７】
以上のように、この実施の形態２によれば、ファイル名とインデックスが一対一対応の関数を用いて、読出対象ファイルを表すファイル名からインデックス生成部１４がインデックスを生成するので、このインデックスに基づいて、ファイル管理情報配列１３内の検索を行うことなく、直ちに目的のファイルのファイル管理情報が得られる。従って、記憶装置３０に記憶されたファイルの数にかかわらず、高速にファイルを検索することができる。そして、ファイル名とインデックスが一対一対応の関数を用いるので、ファイル名から得られるインデックスが不定になったり互いに衝突したりすることがない。従って、他のアクセス方式による補完を行う必要もなく、確実に高速でファイルを検索することができる。
【００３８】
また、この実施の形態では、ファイル名を使用してファイルをディレクトリに分類することができる。上記のようにファイル名から複数の部分を抽出して、各部分に関数を適用することによって、ファイル管理情報配列１３内のファイル管理情報の様々な任意の配置形式に適合するようにインデックスを生成することができる。
【００３９】
この実施の形態は、各ディレクトリ内にファイルが存在する１階層ディレクトリ形式を前提とするが、ディレクトリ内に下位のディレクトリが存在する多階層ディレクトリ形式を前提としてもよい。例えば、ファイル名のうち、最初の３桁を１階層目のディレクトリ名、次の３桁を２階層目のディレクトリ名、．．．とすることで深い階層も実現できる。その場合には、インデックス生成部１４に、ファイル名の各部分に関数を適用するさらに多数の生成部を設けてもよい。
【００４０】
また、この実施の形態では、各ディレクトリの最大許容ファイル個数は、各ディレクトリについて可能な最大の個数（例えば１０００）であるが、これをもっと少ない数に制限することも可能である。各ディレクトリについて異なる最大許容ファイル個数を定義したテーブルを用意しておくことで、ディレクトリ毎に最大許容ファイル個数を任意に設定してもよい。
【００４１】
実施の形態３．
図７はこの発明の実施の形態３に係るファイル管理装置を備えた電気機器の一部を示すブロック図である。図７のファイル管理装置であるプロセッサ１０は、図１のプロセッサ１０（実施の形態１）に比べて、ファイル名使用状況判断部２１、ファイル名使用状況判断部２３、インデックス生成部（第２のインデックス生成部）２４を備える点で異なる。ファイル名使用状況判断部２１は、ファイルを記憶装置３０に新たに記憶しようとするときに、ユーザが命名したファイル名がすでに使用されているか（そのファイル名のファイルが既に記憶装置３０に記憶済みか）否かを判断する。他方、ファイル名使用状況判断部２３は、ユーザが使用しようとするファイルのファイル名がすでに使用されているか否かを判断する。
【００４２】
このプロセッサ１０の動作について説明する。以下の動作は、プロセッサ１０がプログラムに従って実行する。
電気機器で作成されたか、外部から電気機器に取り込まれたファイルについてユーザからの記憶指令があると、記憶アクセス部１１は、記憶指令で指定されたファイル名をインデックス生成部２４に通知する。このファイル名の通知は、問い合わせ対象のファイル名が記憶装置３０で既に使用されているか否かの問い合わせと考えることができる。このファイル名の通知を受けてインデックス生成部２４は、ファイル名とインデックスが一対一対応の関数を用いて、ファイル名からインデックスを生成し、ファイル名使用状況判断部２１にインデックスを通知する。使用する関数は、実施の形態１または実施の形態２に関連して説明した関数ｆまたは関数ｆ１でもよいし、他の形式の関数でもよい。
【００４３】
インデックスを受けるとファイル名使用状況判断部２１は、ファイル名使用状況情報配列２２を参照し、インデックス生成部２４から受けたインデックスに対応するファイル名使用状況情報がファイル名使用状況情報配列２２でどのような状態を表示するかを判断する。図８に示すように、ファイル名使用状況情報配列２２は、例えば２値のファイル名使用状況情報の並びであり、この並びはインデックスの示す番号の順序の通りである。各ファイル名使用状況情報は各ファイル名が使用されているか否かを示す。ファイル名使用状況情報配列２２内のファイル名使用状況情報の位置はインデックスで指定され、ファイル名使用状況情報が「１」であれば対応するファイル名が使用済み（そのファイル名のファイルが既に記憶装置３０に記憶済み）であり、「０」であれば対応するファイル名が未使用（そのファイル名のファイルは存在しない）である。図中のファイル管理情報配列のうち梨地で示したファイル管理情報はファイルが存在しないことを示す。
【００４４】
ファイル名使用状況情報配列２２は、前述したファイル管理情報配列１３と同様に、プロセッサ１０が使用されているときには、プロセッサ１０が迅速にアクセスすることができるように図示しない一時記憶装置（例えばプロセッサ１０の内蔵装置または周辺装置としてのランダムアクセスメモリ）に記憶されている。
ファイル名使用状況情報配列２２は、プロセッサ１０の起動時に固定的な記憶装置（記憶装置３０と同じでもよいし、図示しない別個の記憶装置でもよい）からその一時記憶装置に転送され、適切な時期に一時記憶装置から固定的な記憶装置に転送されて固定的に更新保存されるようになっている。
【００４５】
このようなファイル名使用状況情報配列２２をあらかじめ準備しておくことによって、新たにファイルを記憶しようとするときに、そのファイルに付与しようとするファイル名がすでに使用されているか（そのファイル名のファイルが既に記憶装置３０に記憶済みか）否かを、インデックスを利用して簡単に判断することが可能である。判断対象のファイル名がすでに使用されている（ファイル名使用状況情報が「１」である）と判断した場合には、ファイル名使用状況判断部２１は「使用済み」を示す信号を生成し、これを出力する。この「使用済み」を示す信号を用いて、電気機器の図示しないマンマシンインタフェースが別のファイル名を指定するようにユーザに促す。例えばディスプレイまたはスピーカが「そのファイル名は使用されています。別のファイル名を指定してください。」と表示または発声し、別のファイル名の指定を促す。これによりユーザは別のファイル名を指定し、そのファイル名に基づいてインデックス生成部２４およびファイル名使用状況判断部２１はファイル名の使用状況の判断処理を繰り返す。
【００４６】
判断対象のファイル名が未使用である（ファイル名使用状況情報が「０」である）と判断した場合には、ファイル名使用状況判断部２１は、対応するファイル名使用状況情報を「１」に書き換える。また、この場合にファイル名使用状況判断部２１は、記憶アクセス部１１およびファイル管理情報付与部１２を作動させる。これにより、記憶アクセス部１１はそのファイルを記憶装置３０に記憶する。また、記憶アクセス部１１は、そのファイルのファイル名、ファイルサイズ、作成日時、ファイル格納位置（例えば記憶装置３０がハードディスクならクラスタ）、ファイルの属性およびその他の記述を含む情報をファイル管理情報付与部１２に通知する。
【００４７】
ファイル管理情報付与部１２は、記憶アクセス部１１から通知された情報を、記憶装置３０に記憶したファイルを管理するためのファイル管理情報として、ファイル管理情報配列１３に加える。ファイル管理情報配列１３およびそのファイル管理情報は、実施の形態１または実施の形態２に関連して既述したものと同じでよい。ファイル管理情報をファイル管理情報配列１３に追加するときには、ファイル管理情報付与部１２は、一対一対応の関数を用いて、ファイル名からインデックスを生成する。使用する関数は、実施の形態１または実施の形態２に関連して説明した関数ｆまたは関数ｆ１でもよいし、他の形式の関数でもよい。そして、ファイル管理情報配列１３内のそのインデックスが示す位置に、そのファイルに関するファイル管理情報を追加する。あるいは、ファイル管理情報配列１３において、インデックス生成部２４が生成したインデックスが示す位置に、ファイル管理情報付与部１２はファイル管理情報を追加してもよい。
【００４８】
一方、ユーザがあるファイルを読み出そうとする場合には、ユーザは図示しないマンマシンインタフェースを用いてファイル名を指定する。ファイル名はインデックス生成部１４に通知される。このファイル名の通知も、読み出し対象のファイル名が記憶装置で既に使用されているか否かの問い合わせと考えることができる。このファイル名の通知を受けてインデックス生成部１４はそのファイル名に一対一対応の関数を適用してインデックスを生成し、ファイル名使用状況判断部２３にインデックスを通知する。
【００４９】
インデックスを受けるとファイル名使用状況判断部２３は、ファイル名使用状況判断部２１と同様に、ファイル名使用状況情報配列２２を参照し、インデックス生成部１４から受けたインデックスに対応するファイル名使用状況情報がファイル名使用状況情報配列２２でどのような状態を表示するかを判断する。
【００５０】
判断対象のファイル名が未使用である（ファイル名使用状況情報が「０」である）と判断した場合には、ファイル名使用状況判断部２３は、「該当ファイルなし」を示す信号を生成し、これを出力する。この「該当ファイルなし」を示す信号を用いて、電気機器の図示しないマンマシンインタフェースが別のファイル名を指定するようにユーザに促すことができる。例えばディスプレイまたはスピーカが「そのファイル名に該当するファイルはありません。別のファイル名を指定してください。」と表示または発声し、別のファイル名の指定を促すことができる。これによりユーザは別のファイル名を指定し、そのファイル名に基づいてインデックス生成部１４およびファイル名使用状況判断部２３はファイル名の使用状況の判断処理を繰り返す。
【００５１】
判断対象のファイル名がすでに使用されている（ファイル名使用状況情報が「１」である）と判断した場合には、ファイル名使用状況判断部２３はインデックスをインデックス・ファイル管理情報対応付け部１５に通知する。
【００５２】
インデックス・ファイル管理情報対応付け部１５は、ファイル管理情報配列１３内のインデックスが示す位置から、目的のファイルに対応するファイル管理情報を読み出し、読出アクセス部１６に通知する。そのファイル管理情報中のファイル格納位置を示す記述を使用して読出アクセス部１６は記憶装置３０から目的のファイルを読み出す。このようにして、目的のファイルを例えば本来の用途に供することが可能である。
【００５３】
以上のように、この実施の形態３によれば、実施の形態１または実施の形態２の奏する効果に加えて、次のような効果を奏する。すなわちファイルの新規記憶時には、問い合わせ対象のファイル名が記憶装置３０で既に使用されているか否かの問い合わせに応じて、インデックス生成部２４が、ファイル名とインデックスが一対一対応の関数を用いて、問い合わせ対象のファイル名からインデックスを生成する。そして、ファイル名使用状況判断部２１が、インデックスを用いて、ファイル名使用状況情報配列２２からファイル名使用状況情報を読んで、問い合わせ対象のファイル名に対応するファイルが既に記憶装置３０に記憶されているか否かを判断する。
【００５４】
このように、ファイルを記憶装置３０に新たに記憶しようとするときに、ユーザが命名したファイル名がすでに使用されているか（そのファイル名のファイルが既に記憶装置３０に記憶済みか）否かをファイル名使用状況判断部２１が判断できるので、判断結果に応じてユーザは別のファイル名をそのファイルに与える等の適切な措置を迅速にとることができる。例えば、この実施の形態が応用された電気機器が音楽、動画像と音声、または画像ファイルを記憶する装置（録音や録画が可能な装置）である場合には、録音または録画の対象ファイルのファイル名を迅速に決定することができるので便利である。
【００５５】
ファイル名使用状況情報配列２２では、ファイル名に対応するファイルが既に記憶装置に記憶されているか否かを示すファイル名使用状況情報がインデックス順に並んでいる。換言すれば、インデックスは、ファイル名使用状況情報配列２２内での問い合わせ対象ファイルのファイル名使用状況情報の格納位置を表しており、このインデックスに基づいて、ファイル名使用状況情報配列２２内の検索を行うことなく、直ちに目的のファイルのファイル名使用状況情報が得られる。
そして、ファイル名とインデックスが一対一対応の関数を用いるので、ファイル名から得られるインデックスが不定になったり互いに衝突したりすることがない。また、上述のように、ファイル名から抽出した一部分をそのままインデックスとするという簡単な関数を使用すれば、プロセッサ１０の処理の負荷が軽くてすむ。
【００５６】
また、ファイルを読み出そうとする時にも、読み出し対象のファイル名が記憶装置３０で既に使用されているか否かの問い合わせに応じて、ファイル名使用状況判断部２３が、インデックス生成部１４で生成されたインデックスを用いて、ファイル名使用状況情報配列２２からファイル名使用状況情報を読んで、読み出し対象のファイル名に対応するファイルが既に記憶装置３０に記憶されているか否かを判断する。このように、ファイルを記憶装置３０に読み出そうとするときに、そのファイル名がすでに使用されているか（そのファイル名のファイルが記憶装置３０に記憶済みか）否かをファイル名使用状況判断部２３が判断できるので、判断結果に応じてユーザは別のファイル名のファイルを読み出す等の適切な措置を迅速にとることができる。
【００５７】
実施の形態４．
図９はこの発明の実施の形態４に係るファイル管理装置を備えた電気機器の一部を示すブロック図である。図９のファイル管理装置であるプロセッサ１０は、図７のプロセッサ１０（実施の形態３）に比べて、インデックス生成部２４を備えておらず、インデックス候補生成部２５およびファイル名生成部２６を備える点で異なる。この実施の形態では、ファイルを記憶装置３０に新たに記憶しようとするときに、プロセッサ１０により自動的にファイル名を生成する。
【００５８】
このプロセッサ１０の動作について説明する。以下の動作は、プロセッサ１０がプログラムに従って実行する。
但し、ユーザがあるファイルを読み出そうとする場合には、プロセッサ１０においては、実施の形態３と同様に、インデックス生成部１４、ファイル名使用状況判断部２３、インデックス・ファイル管理情報対応付け部１５および読出アクセス部１６が動作する。これらのファイル読み出し動作は実施の形態３と同様であるので、その説明を省略する。
【００５９】
一方、電気機器で作成されたか、外部から電気機器に取り込まれたファイルについてユーザからの記憶指令があると、記憶アクセス部１１は、記憶装置３０に記憶されていない未記憶ファイルのファイル名の問い合わせ（未使用ファイル名の問い合わせ）を生成し、この問い合わせをインデックス候補生成部２５に通知する。
【００６０】
この問い合わせを受けてインデックス候補生成部２５は、インデックス候補を生成し、ファイル名使用状況判断部２１にそのインデックス候補を通知する。例えば、この問い合わせの直後にインデックス候補生成部２５は、インデックス候補「０」を生成する。
【００６１】
インデックス候補を受けるとファイル名使用状況判断部２１は、ファイル名使用状況情報配列２２を参照し、インデックス候補生成部２５から受けたインデックス候補に対応するファイル名使用状況情報がファイル名使用状況情報配列２２でどのような状態を表示するかを判断する。ファイル名使用状況情報配列２２は実施の形態３に関連して既述したものと同じである。ファイル名使用状況情報が「１」であれば対応するファイル名が使用済み（そのファイル名のファイルが既に記憶装置３０に記憶済み）であり、「０」であれば対応するファイル名が未使用（そのファイル名のファイルは存在しない）である。
【００６２】
インデックス候補に対応する判断対象のファイル名がすでに使用されている（ファイル名使用状況情報が「１」である）と判断した場合には、ファイル名使用状況判断部２１は「使用済み」を示す信号を生成し、これをインデックス候補生成部２５に供給する。この「使用済み」を示す信号を受けると、インデックス候補生成部２５は次のインデックス候補（例えば「１」）を生成して、ファイル名使用状況判断部２１にそのインデックス候補を通知する。このようにして、未使用のファイル名が発見されるまで、インデックス候補生成部２５は逐次インデックス候補を生成し、ファイル名使用状況判断部２１はファイル名の使用状況の判断試行処理を繰り返す。すなわち図１０に示すように、インデックスとしてありうる最初の数値（「０」から開始して、インデックスの示す番号の順序に従ってインデックス候補のスキャンを行う。例えば、図１０に示す例では、インデックス候補「３」に対応するファイル名使用状況情報が「０」であり、これが未使用ファイル名を示す。
【００６３】
インデックス候補に対応する判断対象のファイル名が未使用である（ファイル名使用状況情報が「０」である）と判断した場合には、ファイル名使用状況判断部２１は、対応するファイル名使用状況情報を「１」に書き換える。また、この場合にファイル名使用状況判断部２１は、記憶アクセス部１１およびファイル名生成部２６を作動させる。これにより、記憶アクセス部１１はそのファイルを記憶装置３０に記憶する。また、記憶アクセス部１１は、そのファイルのファイルサイズ、作成日時、ファイル格納位置（例えば記憶装置３０がハードディスクならクラスタ）、ファイルの属性およびその他の記述を含む情報をファイル管理情報付与部１２に通知する。
【００６４】
また、ファイル名生成部２６は、未使用ファイル名に係るインデックス候補に基づいて、ファイル名とインデックス（インデックス候補）が一対一対応の関数を用いて、そのファイルのファイル名を生成する。具体的には、ファイルの読み出し時にインデックス生成部１４がインデックス生成に使用する関数の逆関数をファイル名生成部２６はインデックスに適用することによって未使用ファイル名を生成する。
【００６５】
例えば、インデックス生成部１４がファイル名からインデックスを生成するのに、図１１に示すように関数ｆ１を使用する場合には、ファイル名生成部２６はその逆関数Ｆ１を使用して未使用ファイル名を得る。ファイル名からインデックスを生成するのに使用する関数は、実施の形態１または実施の形態２に関連して説明した関数ｆまたは関数ｆ１でもよいし、他の形式の関数でもよい。但し、この実施の形態では自動的にインデックス候補を生成して未使用ファイル名を得るので、実施の形態２に関連して説明したようなユーザの意思によるディレクトリの指定はできない。
【００６６】
ファイル名生成部２６は生成した未使用ファイル名をファイル管理情報付与部１２に通知する。ファイル管理情報付与部１２は、記憶アクセス部１１およびファイル名生成部２６から通知された情報を、記憶装置３０に記憶したファイルを管理するためのファイル管理情報として、ファイル管理情報配列１３に加える。
ファイル管理情報配列１３およびそのファイル管理情報は、実施の形態１または実施の形態２に関連して既述したものと同じでよい。ファイル管理情報をファイル管理情報配列１３に追加するときには、ファイル管理情報付与部１２は、一対一対応の関数を用いて、ファイル名からインデックスを生成する。使用する関数は、実施の形態１または実施の形態２に関連して説明した関数ｆまたは関数ｆ１でもよいし、他の形式の関数でもよい。そして、ファイル管理情報配列１３内のそのインデックスが示す位置に、そのファイルに関するファイル管理情報を追加する。あるいは、ファイル管理情報配列１３において、インデックス生成部２４が生成したインデックスが示す位置に、ファイル管理情報付与部１２はファイル管理情報を追加してもよい。
【００６７】
以上のように、この実施の形態４によれば、記憶装置３０に記憶されていない未記憶ファイルのファイル名の問い合わせ（未使用ファイル名の問い合わせ）に応じて、インデックス候補生成部２５がインデックス候補を逐次生成し、ファイル名使用状況判断部２１で対応するファイルが記憶装置３０に記憶されていないと判断されたインデックス候補からファイル名生成部２６がファイル名とインデックスが一対一対応の関数を用いて、未使用ファイル名を生成するので、ファイルを記憶装置３０に新たに記憶しようとするときに、ファイル名を自動的に命名することが可能である。例えば、この実施の形態が応用された電気機器が音楽、動画像と音声、または画像ファイルを記憶する装置（録音や録画が可能な装置）である場合には、録音または録画の対象ファイルのファイル名を迅速に自動的に決定することができるので便利である。
【００６８】
また、上述のように、ファイル名から抽出した一部分をそのままインデックスとするという簡単な関数をインデックス生成用の関数として使用する場合には、ファイル名生成部２６はインデックスに文字を付加することによって未使用ファイル名を生成するという簡単な逆関数を使用することが可能である。従って、プロセッサ１０の処理の負荷が軽くてすむ。
【００６９】
【発明の効果】
以上説明したように、この発明によれば、ファイル名とインデックスが一対一対応の関数を用いて、読出対象ファイルを表すファイル名からインデックス生成部がインデックスを生成する。ファイル管理情報配列では、インデックス順にファイル管理情報が並んでいる。換言すれば、インデックスは、ファイル管理情報配列内での読出対象ファイルのファイル管理情報の格納位置を表しており、このインデックスに基づいて、ファイル管理情報配列内の検索を行うことなく、直ちに目的のファイルのファイル管理情報が得られる。従って、記憶装置に記憶されたファイルの数にかかわらず、高速にファイルを検索することができる。そして、ファイル名とインデックスが一対一対応の関数を用いるので、ファイル名から得られるインデックスが不定になったり互いに衝突したりすることがない。従って、他のアクセス方式による補完を行う必要もなく、確実に高速でファイルを検索することができる。
【図面の簡単な説明】
【図１】この発明の実施の形態１に係るファイル管理装置を備えた電気機器の一部を示すブロック図である。
【図２】実施の形態１で利用される原理を示す図である。
【図３】実施の形態１で使用されるファイル管理情報配列を示す図である。
【図４】この発明の実施の形態２で利用される原理を示す図である。
【図５】実施の形態２で使用されるファイル管理情報配列を示す図である。
【図６】この発明に係るファイル管理装置において、実施の形態２で使用すると好適なインデックス生成部を示すブロック図である。
【図７】この発明の実施の形態３に係るファイル管理装置を備えた電気機器の一部を示すブロック図である。
【図８】実施の形態３で使用されるファイル名使用状況情報配列とファイル管理情報配列を示す図である。
【図９】この発明の実施の形態４に係るファイル管理装置を備えた電気機器の一部を示すブロック図である。
【図１０】実施の形態４でのファイル名使用状況情報配列の使用方法を説明するために使用される図である。
【図１１】この発明の実施の形態４で利用される原理を示す図である。
【符号の説明】
１０  プロセッサ、１１  記憶アクセス部、１２  ファイル管理情報付与部、１３  ファイル管理情報配列、１４  インデックス生成部、１５  インデックス・ファイル管理情報対応付け部（記憶装置アクセス制御部）、１６  読出アクセス部（記憶装置アクセス制御部）、１７  分離部、１８  第１の生成部、１９  第２の生成部、２０  組合わせ部、２１  ファイル名使用状況判断部、２２  ファイル名使用状況情報配列、２３  ファイル名使用状況判断部、２４  インデックス生成部（第２のインデックス生成部）、２５  インデックス候補生成部、２６  ファイル名生成部、３０  記憶装置。
【図１】
2004185214.tif 000003
【図２】
2004185214.tif 000004
【図３】
2004185214.tif 000005
【図４】
2004185214.tif 000006
【図５】
2004185214.tif 000007
【図６】
2004185214.tif 000008
【図７】
2004185214.tif 000009
【図８】
2004185214.tif 000010
【図９】
2004185214.tif 000011
【図１０】
2004185214.tif 000012
【図１１】
2004185214.tif 000013