(57)【要約】【課題】  ユーザが任意に指定したファイル名を変更することなく記録媒体に記録する情報記録装置を提供する。【解決手段】  メモリカード２から、指定された階層に格納されているファイルまたはディレクトリの属性を検索してバッファ１４に読み出すデータ読み込み部１３と、データ読み込み部１３によって読み出されたファイルまたはディレクトリの属性に含まれる名称のうち、指定された名称と一致するものが存在しないかどうかを検索するファイル名検索部１５と、ファイル名検索部１５によって名称が一致するものが存在しないと判断されたとき、指定された名称に基づいて一意に決定される８バイトの名称部および３バイトの拡張子部からなるＳＦＮ名を作成するファイル名作成部１６と、ファイル名作成部１６と指定された名称とを保持するファイルまたはディレクトリを指定された階層に書き込むデータ書き込み部１７とを備える。【選択図】        図１
2005222483.tif 000002
【特許請求の範囲】
【請求項１】
被記録情報に名称を割り当て、記録媒体の指定された階層に書き込みを行う情報記録装置において、
前記記録媒体から、前記指定された階層に格納されている被記録情報の属性を検索して記憶領域に読み出す情報検索手段と、
前記情報検索手段によって読み出された被記録情報の属性に含まれる名称のうち、指定された名称と一致するものが存在しないかどうかを検索する名称検索手段と、
前記名称検索手段によって名称が一致するものが存在しないと判断されたとき、指定された名称に基づいて一意に決定される８バイトの名称部および３バイトの拡張子部からなる短縮名称部を作成する短縮名称作成手段と、
前記短縮名称部と指定された名称とを保持する被記録情報を前記階層に書き込む情報書き込み手段とを備えたことを特徴とする情報記録装置。
【請求項２】
短縮名称作成手段は、指定された名称に基づいて最大周期列により発生する乱数により短縮名称部を決定することを特徴とする請求項１記載の情報記録装置。
【請求項３】
短縮名称作成手段は、指定された名称が拡張子を除き８バイトを超過するサイズである場合に、短縮名称部を作成することを特徴とする請求項１または請求項２記載の情報記録装置。
【請求項４】
名称検索手段は、指定された名称に基づいて最大周期列により発生する乱数により短縮名称部を作成し、作成した短縮名称部に基づいて、情報検索手段が読み出した被記録情報の名称が、指定された名称と一致しないかどうかの検索を行うことを特徴とする請求項１から請求項３のうちいずれか１項記載の情報記録装置。
【請求項５】
記録媒体が挿抜自在のメモリカードであることを特徴とする請求項１から請求項４のうちいずれか１項記載の情報記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、被記録情報にファイル名またはディレクトリ名を割り当てて記録媒体に保存する情報記録装置に関するものである。
【背景技術】
【０００２】
情報携帯端末、携帯電話、デジタルスチルカメラでは、記録媒体に対してデータをファイルとして記録する。ファイルが記録された記録媒体は、パーソナルコンピュータとのデータの互換性からＭＳ−ＤＯＳ（登録商標）やＷｉｎｄｏｗｓ（登録商標）上で動作することを意識し、ＤＯＳ形式のフォーマットにて取り扱われる。ＤＯＳ形式のフォーマットでは、データの集合に対して個別のファイル名が命名され、記録媒体内ではファイル名によってデータが管理されている。ファイル名は、同一ディレクトリ内で重複しないファイル名であれば命名が可能である。
【０００３】
ＭＳ−ＤＯＳ（登録商標）やＷｉｎｄｏｗｓ（登録商標）では、取り扱えるファイル名の形式として８．３形式名とＬＦＮ（Ｌｏｎｇ  Ｆｉｌｅ  Ｎａｍｅ）形式名が存在する。８．３形式名は、８バイト以内のファイル名、３バイト以内の拡張子から構成されるファイル名である。ＬＦＮ形式名は、ファイル名と拡張子名とをあわせて２バイトコードで２５５文字以内から構成されるファイル名である。
【０００４】
ディレクトリ内にファイルを新規に作成する際に、そのファイルの名称がディレクトリ内で重複しないように名称を決定する必要がある。既存のファイル名との重複を回避する方法としては、決定したファイル名をディレクトリ内で検索し、検索結果に基づいてファイル名の正当性を判断する方法が一般的である。しかし、ファイル名が重複しているかどうかを判定する検索処理は、ディレクトリ内のファイル数が増加するほど多くの時間を要する。したがって、検索処理を行うことなくファイル名を決定するための様々な方法が講じられている。
【０００５】
例えば、特許文献１には、ハッシュ関数による乱数を利用してファイル名の一部を数字で管理し、重複しないファイル名を生成する方法が開示されている。
【０００６】
【特許文献１】特開平６−２３１０２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の方法では、ファイル名の文字数が８バイト以内、拡張子が３バイト以内に規定されているため、８．３形式名のファイル名の作成にしか対応できないという課題があった。また、ファイル名の一部を機器内での数字で管理するため、最終的に記録媒体に保存するファイル名をユーザが任意に決定できないという課題があった。
【０００８】
この発明は上記のような課題を解決するためになされたもので、ユーザが任意に指定したファイル名を変更することなく記録媒体に記録する情報記録装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る情報記録装置は、記録媒体から、指定された階層に格納されている被記録情報の属性を検索して記憶領域に読み出す情報検索手段と、情報検索手段によって読み出された被記録情報の属性に含まれる名称のうち、指定された名称と一致するものが存在しないかどうかを検索する名称検索手段と、名称検索手段によって名称が一致するものが存在しないと判断されたとき、指定された名称に基づいて一意に決定される８バイトの名称部および３バイトの拡張子部からなる短縮名称部を作成する短縮名称作成手段と、短縮名称部と指定された名称とを保持する被記録情報を階層に書き込む情報書き込み手段とを備えたものである。
【発明の効果】
【００１０】
この発明によれば、情報記録装置が、記録媒体から、指定された階層に格納されている被記録情報の属性を検索して記憶領域に読み出す情報検索手段と、情報検索手段によって読み出された被記録情報の属性に含まれる名称のうち、指定された名称と一致するものが存在しないかどうかを検索する名称検索手段と、名称検索手段によって名称が一致するものが存在しないと判断されたとき、指定された名称に基づいて一意に決定される８バイトの名称部および３バイトの拡張子部からなる短縮名称部を作成する短縮名称作成手段と、短縮名称部と指定された名称とを保持する被記録情報を階層に書き込む情報書き込み手段とを備えるように構成したので、短縮名称部は一意に決定できるため、重複するかどうかを検索する必要がなく、短縮名称部を作成する時間を短縮できるという効果が得られる。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
図１はこの発明の実施の形態１による情報記録装置のブロック図である。図に示すように、情報記録装置１０は、ファイル名指定部１１、情報解析部１２、データ読み込み部（情報検索手段）１３、バッファ（記憶領域）１４、ファイル名検索部（名称検索手段）１５、ファイル名作成部（短縮名称作成手段）１６、データ書き込み部（情報書き込み手段）１７を備える。情報記録装置１０は、例えば携帯情報端末や携帯電話等に搭載され、挿抜自在のメモリカード（記録媒体）２が挿入される。メモリカードは情報記録装置１０に対して挿抜自在のものであればよく、例えばフロッピー（登録商標）ディスク、コンパクトディスク等のデータ記録媒体でもよい。
【００１２】
ファイル名指定部１１は、ユーザの操作に応じてファイル名を設定する。ファイル名の決定方法としては、例えば情報記録装置１０が一覧を表示してユーザに選択させてもよいし、ユーザが情報記録装置１０のテンキーやボタンを押下して文字を入力することによって決定してもよい。ファイル名指定部１１は、ユーザが決定したファイル名を、メモリカード２に格納される位置を含むパス付ファイル名として設定する。
【００１３】
情報解析部１２は、ファイル名指定部１１からパス付ファイル名を取得して、階層毎にディレクトリ名を分離し、ルートディレクトリからファイルを作成するディレクトリの階層まで、メモリカード２から読み込むクラスタ番号を取得する。データ読み込み部１３は、情報解析部１２から指定されたクラスタ番号の内容をメモリカード２からバッファ１４に読み込む。バッファ１４は、データ読み込み部１３によってメモリカード２から読み込まれたデータを保存する。バッファ１４はまた、メモリカード２にデータを書き込む際に情報解析部１２から取得したクラスタ番号の領域に対して書き込むデータを保存する。
【００１４】
ファイル名検索部１５は、８．３形式名検索部１５１とＬＦＮ形式名検索部１５２とを備える。８．３形式名検索部１５１、ＬＦＮ形式名検索部１５２は、バッファ１４内に保存されるデータからファイル名またはディレクトリ名を検索する（詳細は後述する）。検索により発見されたファイル名からファイル情報を取得し、情報解析部１２に取得したデータを供給する。
【００１５】
ファイル名作成部１６は、８．３形式名作成部１６１とＬＦＮ形式名作成部１６２とを備え、ファイルの名称を作成する（詳細は後述する）。データ書き込み部１７は、情報解析部１２により指定された位置にバッファ１４に格納されているデータを書き込む。
【００１６】
図２はＤＯＳ形式のＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）型のファイルシステムのファイル構成を説明する図である。図に示すように、このファイル構成は、システム領域とデータ領域とを備える。システム領域には、ＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）領域、ＰＢＲ（Ｐａｒｔｉｔｉｏｎ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）領域、ＦＡＴ領域、ルートディレクトリエントリ領域がある。ＭＢＲ領域はメモリカードの記録形式を規定する情報を格納し、ＰＢＲ領域はパーティションに関する情報を格納する。ＦＡＴ領域はデータ領域の使用状況を管理する情報を格納し、ルートディレクトリエントリ領域はルートディレクトリのファイルやディレクトリを管理する情報を格納する。また、データ領域にはファイル情報、データ等が格納される。
【００１７】
図３はＭＳ−ＤＯＳ（登録商標）のＦＡＴ型のファイルシステムにおいて、ディレクトリエントリがクラスタ内に格納されている様子を示す図である。ディレクトリエントリとは、ファイル名、拡張子、属性、作成された日時、開始クラスタ番号、ファイルサイズ等、ファイルを管理する情報が記録された表であり、クラスタ内で先頭から３２バイトずつファイル毎に割り当てられる。ディレクトリエントリにはその形式によって、８．３形式ディレクトリエントリ、ＶＦＡＴ（Ｖｉｒｔｕａｌ  Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）形式ディレクトリエントリ、ＳＦＮ（Ｓｈｏｒｔ  Ｆｉｌｅ  Ｎａｍｅ）形式ディレクトリエントリの３種類が存在する。
【００１８】
８．３形式名により指定されるファイルの情報は８．３形式ディレクトリエントリに格納される。また、ＬＦＮ形式名により指定されるファイルの情報は、ＶＦＡＴ形式ディレクトリエントリとＳＦＮ形式ディレクトリエントリとに連続して格納される。ＬＦＮ形式名は、ユーザから指定される最大２５５文字までの長さのファイル名と、管理用として生成されるＳＦＮ形式名とから構成される。ＶＦＡＴ形式ディレクトリエントリは、ユーザから指定されるファイル名の文字長に基づいて必要な個数が連続して配置される。例えば図３には、ＶＦＡＴ形式ディレクトリエントリが１つ必要なもの（１）と、３つ必要なもの（２）を示した。また、ＳＦＮ形式名はＳＦＮ形式ディレクトリエントリに格納され、各ＬＦＮ形式名には必ず１つのＳＦＮ形式ディレクトリエントリが確保される。
【００１９】
図４（ａ）〜（ｃ）はディレクトリエントリの構成を説明する図である。図４（ａ）は８．３形式ディレクトリエントリ、図４（ｂ）はＶＦＡＴ形式ディレクトリエントリ、図４（ｃ）はＳＦＮ形式ディレクトリエントリの構成をそれぞれ示す。８．３形式ディレクトリエントリは、ファイル名部と拡張子部とを含む８．３形式ファイル名、属性、予約領域、日時情報、クラスタ番号、ファイルサイズを保持する。ＶＦＡＴ形式ディレクトリエントリは、ＩＤ、ＬＦＮ形式ファイル名、属性、固定値、チェックサムを保持する。また、ＳＦＮ形式ディレクトリエントリは、ファイル名部と拡張子部とを含むＳＦＮ形式ファイル名、属性、追加情報、日時情報、クラスタ番号、ファイルサイズを保持する。
【００２０】
情報記録装置１０にメモリカード２が挿入されているときは、データ読み込み部１３が図２のファイル構成を有するメモリカード２からＭＢＲ情報、ＰＢＲ情報を取得して内容を確認し、メモリカード２内でのＦＡＴ領域、ルートディレクトリエントリ領域、データ領域の開始位置を取得できる。メモリカード２に対するデータ領域のデータの読み込み、書き込みは、クラスタ単位で実行される。よって、ここではバッファ１４のサイズはクラスタサイズとする。クラスタはデータ領域内で論理番号として２番から割り当てられ、ＦＡＴ領域において各クラスタの使用状況が管理されている。ファイルは階層構造によって管理されており、ルートディレクトリエントリ領域内にあるファイルおよびディレクトリのディレクトリエントリが階層の基点となる。
【００２１】
次に情報記録装置１０がメモリカード２に対して新規ファイルを作成する動作について説明する。
ユーザは、ファイル名指定部１１を操作してファイル作成コマンドを選択した後、ファイルを作成したい場所を示すパス名と作成するファイルの名称とを任意に指定し、パス付ファイル名としてファイル名指定部１１に設定する。ファイル名指定部１１は設定されたパス付ファイル名を情報解析部１２に通知する。情報解析部１２は、パス付ファイル名をパス名とファイル名に分離し、パス名の解析を行う。解析によりファイル名を書き込むディレクトリを決定すると、該当するディレクトリの内容が含まれるクラスタ番号をデータ読み込み部１３に通知する。
【００２２】
ここで、クラスタ番号の取得手順について説明する。ファイル名指定部１１において、パス付ファイル名が例えば「/DIR01/ DIR02/ DIR03/ FILE01.DAT」と指定されたとする。ここではパス名、ファイル名は共に８．３形式名とする。データ読み込み部１３はルートディレクトリエントリをバッファ１４に読み出しておく。情報解析部１２はパス付ファイル名を「/DIR01」と「/ DIR02/ DIR03/ FILE01.DAT」に分離し、ファイル名検索部１５に供給する。ファイル名検索部１５はバッファ１４内で「DIR01 」の名称を持つディレクトリエントリの探索を行い、発見した場合はディレクトリエントリを情報解析部１２に返す。情報解析部１２は取得したディレクトリエントリからクラスタ番号を読み出し、データ読み込み部１３に供給する。データ読み込み部１３はクラスタ番号の内容をバッファ１４に読み出す。
【００２３】
続いて、情報解析部１２はパス付ファイル名「/ DIR02/ DIR03/ FILE01.DAT」をさらに「/DIR02」と「/ DIR03/ FILE01.DAT 」に分離し、ファイル名検索部１５はバッファ１４内で「DIR02」の名称を持つディレクトリエントリを探索する。発見されたディレクトリエントリから情報解析部１２はクラスタ番号を取得する。さらに情報解析部１２はパス付ファイル名「/ DIR03/ FILE01.DAT 」を「/ DIR03 」と「/ FILE01.DAT」に分離して、ファイル名検索部１５によって「DIR03 」の名称を持つディレクトリエントリを探索する。情報解析部１２は発見されたディレクトリエントリからクラスタ番号を取得する。以上の手順で情報解析部１２は「DIR03 」の内容が記載されているディレクトリエントリのクラスタ番号を取得する。上記では、絶対パス名に８．３形式名のみを使用した場合にディレクトリエントリを探索する手順を説明したが、ＬＦＮ形式名がパス名に含まれる場合は、以下に示す本発明による手順を利用する。以下には、ファイル名が８．３形式名またはＬＦＮ形式名のファイルを指定されたディレクトリに作成する手順を示している。
【００２４】
情報解析部１２が上記手順によってクラスタ番号を取得すると、データ読み込み部１３はクラスタ番号に相当するメモリカード２での物理ブロック番号を決定し、メモリカード２からクラスタサイズ分をバッファ１４に読み込む。バッファ１４には、データ読み込み部１３が指定したクラスタ番号の内容がメモリカード２からコピーされて格納される。また、バッファ１４には、パス付ファイル名として指定されたファイル名が、ファイル名検索部１５によってファイル名が書込まれるディレクトリの位置が特定されて保存されている。
【００２５】
情報解析部１２はまた、パス名とファイル名とに分離されているファイル名が８．３形式名であるかＬＦＮ形式名であるかを判断する。ファイル名が８バイトのファイル部と３バイトの拡張子部に格納することが可能な場合は、原則として８．３形式名となる。一方、８．３形式名の領域内に格納できない場合、または８．３形式で禁止されている文字がファイル名に使用されている場合、または英文字の小文字がファイル名に使用されている場合は、ＬＦＮ形式名となる。例えば、「ＬＯＮＧＦＩＬＥＮＡＭＥ．ＤＡＴ」のようにファイル部が８バイトを超過する場合、「ＦＩＬＥ  ＮＵＭ．ＤＡＴ」で使用されている空白文字を含む禁止文字が使用されている場合、または「ｆｉｌｅ．ＤＡＴ」のように英小文字が使用されている場合は、全てＬＦＮ形式名として分類される。
【００２６】
情報解析部１２はファイル名が８．３形式名であるかＬＦＮ形式名であるかを判断すると、判断結果をファイル名検索部１５に通知する。ファイル名検索部１５では、形式に対応する検索手段がファイル名を検索する。すなわち、８．３形式名の場合は８．３形式名検索部１５１が検索を行い、ＬＦＮ形式名の場合はＬＦＮ形式名検索部１５２が検索を行う。
【００２７】
ここで、８．３形式名検索部１５１の動作について説明する。
８．３形式名検索部１５１は、ユーザに指定されたファイル名が情報解析部１２が取得したクラスタ内の８．３形式ディレクトリエントリに格納されている各ファイル名と重複しないかどうかを判定する。上述したように、バッファ１４にはファイル情報を管理するディレクトリエントリを格納するクラスタの内容が格納されており、これはユーザが指定したパス名の最終ディレクトリの内容である。８．３形式名検索部１５１は、バッファ１４の先頭バイトから順番に８．３形式ディレクトリエントリを検索する。バッファ１４には、３種類のディレクトリエントリが存在するので、各ディレクトリエントリに存在する属性を取得し、８．３形式ディレクトリエントリであるか否かを判別する。
【００２８】
８．３形式名検索部１５１は８．３形式ディレクトリエントリを特定すると、それが保持するファイル名とユーザが指定したファイル名とを比較し、一致しているか否かを判断する。ユーザが指定したパス付ファイル名はＵＮＩＣＯＤＥの文字コードにより指定されるのに対して、８．３形式ディレクトリエントリに格納されている文字コードは日本語の場合ＳＪＩＳコードであるため、８．３形式名検索部１５１はファイル名をＵＮＩＣＯＤＥからＳＪＩＳに変換した後、一致するか否かの判断を行う。８．３形式名検索部１５１がバッファ１４内の全ての８．３形式ディレクトリエントリとファイル名とを比較して、一致するファイル名を発見しない場合はファイルを作成することが可能であると判断する。
【００２９】
同様に、８．３形式名検索部１５１はユーザが指定したファイル名とＳＦＮ形式ディレクトリエントリのファイル名部との比較も行う。これは、８．３形式ディレクトリエントリとＳＦＮ形式ディレクトリエントリとは同一構成、同一属性であるため、ファイル名部が一致すると同一ファイルと見なされるためである。指定されたファイル名と一致するファイル名を格納する８．３形式ディレクトリエントリとＳＦＮ形式ディレクトリエントリが存在しない場合、８．３形式名検索部１５１はファイル名作成部１６にファイル作成指示を出す。
【００３０】
一方、情報解析部１２が、指定されたファイル名がＬＦＮ形式名であると判断した場合はＬＦＮ形式名検索部１５２が検索を行う。ＬＦＮ形式名検索部１５２は、バッファ１４を検索し、ＶＦＡＴ形式ディレクトリエントリから構築されるファイル名と指定されたファイル名とが重複しないかどうかを判定する。
【００３１】
ＬＦＮ形式の場合は、最大２５５文字までの長さのファイル名の指定が可能である。ＶＦＡＴ形式ディレクトリエントリでは１つのエントリについて最大１３文字しか格納できないため、ファイル名の長さに併せて可変個数のＶＦＡＴ形式ディレクトリエントリが連続して確保される。確保された複数のＶＦＡＴ形式ディレクトリエントリのうち、最後のエントリに隣接するエントリとしてＳＦＮ形式ディレクトリエントリが必ず確保される。
【００３２】
ＬＦＮ形式名検索部１５２は以下の手順でファイル名の重複を判定する。
図４（ｂ）に示したＶＦＡＴ形式ディレクトリエントリの構成要素であるＩＤは、上記複数のＶＦＡＴ形式ディレクトリエントリを識別するためのものである。このＩＤには、連続するＶＦＡＴ形式ディレクトリエントリの個数が含まれる。ＬＦＮ形式名検索部１５２は、ファイル名の長さから必要なＶＦＡＴ形式ディレクトリの個数を算出可能であるため、ＩＤに含まれる個数を比較することによってファイル名が一致する可能性があるか否かを判別できる。したがって、ＬＦＮ形式名検索部１５２は、まず、バッファ１４内に格納されているデータの中で、ＶＦＡＴ形式ディレクトリエントリのＩＤと必要な個数とを比較して、ファイル名の一致の可能性を判定する。
【００３３】
一致する可能性がないと判定した場合は、ＬＦＮ形式名検索部１５２はそのＶＦＡＴ形式ディレクトリエントリとＳＦＮ形式ディレクトリエントリはファイル名と一致しないと判断し、次のＶＦＡＴ形式ディレクトリエントリをバッファ１４内から探し出して判定する。
【００３４】
一方、一致する可能性があると判定した場合は、ＬＦＮ形式名検索部１５２は連続するＶＦＡＴ形式ディレクトリエントリの個数を把握し、ファイル名領域１、ファイル名領域２、ファイル名領域３の３つの領域に分割されているファイル名をＩＤの小さいエントリから順次連結し、ファイル名を取得する。ＬＦＮ形式名検索部１５２は、取得したファイル名とユーザが指定したファイル名とを比較し、一致しているかどうかを判断する。なお、ＶＦＡＴ形式ディレクトリエントリ内の文字はＵＮＩＣＯＤＥにより格納されているために、ユーザが指定したファイル名と同一コードであるので文字コードの変換は必要ない。
【００３５】
８．３形式名検索部１５１、ＬＦＮ形式名検索部１５２は、検索の結果同一のファイル名が見つからなかった場合はファイル名作成部１６に対してファイル名作成の指示を出す。ファイル名作成部１６は、８．３形式名検索部１５１によって検索された場合は８．３形式名作成部１６１によりファイル名を作成し、ＬＦＮ形式名検索部１５２によって検索された場合はＬＦＮ形式名作成部１６２によりファイル名を作成する。一方、同一ファイル名が見つかった場合は、ファイル名検索部１５はユーザに対してファイル名の再設定指示を出す。
【００３６】
次に、８．３形式名作成部１６１の動作について説明する。
８．３形式名作成部１６１はファイル名検索部１５からファイル名作成指示を受けると、８．３形式の名称を作成する。８．３形式名では、ディレクトリエントリを確保するために必要な領域は８．３形式ディレクトリエントリを構成する３２バイトの領域でよい。したがって、バッファ１４内から未使用または使用済みの１つのディレクトリエントリが確保できる領域が見つかればよい。未使用または使用済みであるかどうかは、８．３形式ディレクトリエントリまたはＳＦＮ形式ディレクトリエントリの先頭１バイトが“０ｘ００”または“０ｘＥ５”であるか否かによって判断する。なお、８．３形式ディレクトリエントリとＳＦＮ形式ディレクトリエントリとは同一構成、同一属性であるため、非使用であればいずれのエントリ領域も使用可能である。
【００３７】
８．３形式名作成部１６１は、日時情報、クラスタ番号、ファイルサイズ等、ファイル情報の各項目に対して値を代入し、８．３形式ディレクトリエントリのフォーマットでバッファ１４内に確保できた領域に上書きする。ファイル名に関してはユーザに指定された８．３形式名をファイル部と拡張子部に分離し、それぞれの領域に格納する。
【００３８】
なお、必要な領域がバッファ１４内で確保できないときは、８．３形式名作成部１６１はデータ読み込み部１３が読み出したＦＡＴ領域に基づいて空きクラスタを検索し、得られた空きクラスタの番号をＦＡＴ領域に登録する。これにより、クラスタの領域を確保できる。
【００３９】
次に、ＬＦＮ形式名作成部１６２の動作について説明する。
ＬＦＮ形式名作成部１６２は、ＬＦＮ形式名格納部１６２１、ＳＦＮ形式名格納部１６２２を備え、ファイル名検索部１５からファイル名作成指示を受けるとＬＦＮ形式の名称を作成する。ＬＦＮ形式名では、ユーザにより指定されるファイル名の長さによって確保すべきディレクトリエントリの個数が変化するため、必要となる空き領域は一定サイズではない。１つのＶＦＡＴ形式ディレクトリエントリは、２バイトコードの文字を１３文字格納できる。したがって、ファイル名が１３文字の倍数を超過する毎に必要なＶＦＡＴ形式ディレクトリエントリが１つ増加する。
【００４０】
上述したように、ＬＦＮ形式名はファイル名を格納できる個数分のＶＦＡＴ形式ディレクトリエントリと、１つのＳＦＮ形式ディレクトリエントリとから構成される。そのため必要となる領域サイズはＶＦＡＴ形式ディレクトリエントリの個数にＳＦＮディレクトリエントリ１個分を加算し、３２バイトを乗算したサイズとなる。したがって、ＬＦＮ形式名格納部１６２１はこのサイズの領域をバッファ１４内で連続して確保する必要がある。
【００４１】
使用可能な領域であるかどうかは、８．３形式名作成部１６１の場合と同様に、８．３形式ディレクトリエントリまたはＳＦＮ形式ディレクトリエントリの先頭１バイトが０ｘ００または０ｘＥ５であるかどうかによって判断される。なお、ＳＦＮ形式ディレクトリが非使用である場合、それに付随するＶＦＡＴ形式ディレクトリエントリも先頭１バイトが０ｘＥ５を示し非使用であるため、使用可能となる。
【００４２】
ＬＦＮ形式名格納部１６２１は、ユーザに指定されたファイル名の長さから必要な領域サイズを計算し、上記手順により必要な領域をバッファ１４内に確保できると判断すると、バッファ１４に上書きするためのディレクトリエントリ、すなわちＶＦＡＴ形式ディレクトリエントリとＳＦＮ形式ディレクトリエントリとを以下のように作成する。
【００４３】
ＬＦＮ形式名格納部１６２１は、まず、ユーザにより指定されたファイル名を、ＳＦＮ形式ディレクトリエントリに隣接するＶＦＡＴ形式ディレクトリエントリからファイル名領域１、ファイル名領域２、ファイル名領域３に順番に格納していく。文字が埋まらないファイル名領域には０ｘＦＦを格納する。
【００４４】
続いて、ＳＦＮ形式名格納部１６２２がＳＦＮ形式ディレクトリエントリに格納するファイル名を決定する。ＳＦＮ形式ディレクトリエントリについては、同一ディレクトリ内にある８．３形式名およびＳＦＮ形式名のファイル名と重複しない名称を作成する必要がある。図４に示したように、ＳＦＮ形式のファイル名は８．３形式と同一のフォーマットであり、８バイト以内のファイル名部と３バイト以内の拡張子で構成されるようにする。
【００４５】
従来は、このＳＦＮ形式名を、ＬＦＮ形式名の先頭６バイト、「〜（チルダ）」、数字、および拡張子３バイトから構成される名称としていた。しかしながら、このような構成の名称では、ＳＦＮ形式名に含まれる数字をＬＦＮ形式名によって一意に決定できないため、同一ディレクトリ内に作成されたファイルのＳＦＮ名の作成時に重複するＳＦＮ名がないかどうか検索しなければない。これに対して、本発明では以下のようにＳＦＮ名を作成することによって検索が不要となるようにした。
【００４６】
図５は、ＳＦＮ形式名格納部１６２２の処理手順を示すフローチャートである。この図を参照して、ＳＦＮ形式名格納部１６２２の動作について説明する。
ＳＦＮ形式名格納部１６２２は、ＳＦＮ形式名をＭ系列により発生する乱数を使用して作成する。Ｍ系列とは、線形最大周期列(Maximum-length linearly recurring sequence)の略であり、次の線形漸化式で発生する１ビットの値を並べた数列である。
Ｘｎ＝Ｘｎ-ｐ＋Ｘｎ-ｑ  （ｐ＞ｑ）
【００４７】
ここで、ｎはビット列中のｎ番目のビットを示す。
ビット列を生成するためには、初期値となるビット列が必要である。初期値となるビット列として、ＬＦＮ形式名を構成する文字列をビット列に展開したものを使用し、この長さによって周期を定義する。ｎ番目のビットは、ｎ−ｐ番目とｎ−ｑ番目のビットとの排他的論理和により得られる。ｐとｑには、次の式
Ｘｐ＋Ｘｑ＋１  （ｐ＞ｑ）
が既約多項式となるような任意の値を選択する。
【００４８】
ＳＦＮ形式名格納部１６２２は、Ｍ系列を利用して発生する乱数のうちｎ＝ｐ以降のビット列を６４ビット分だけ取得してＳＦＮ名とする。ＳＦＮ名を作成するために６４ビットの全てを埋める必要はないが、ファイル名が最大限重複しないように設定するために格納可能な最大サイズとした。取得した６４ビットを８ビット毎に区切り、１バイト毎にファイル名部の先頭より８バイト分埋めてファイル名部とする。
【００４９】
ＳＦＮ形式名格納部１６２２はまず、ユーザに指定されたファイル名を構成する文字列をビット列に展開する（ステップＳＴ１００）。続いて、このビット列を線形漸化式の初期値として決定する（ステップＳＴ１０１）。
【００５０】
例えば、ファイル名が「東京都千代田区丸の内地区．ＤＡＴ」の場合を説明する。上述したように、ファイル名部は８バイトであるため、Ｍ系列により発生するビット列は６４ビット必要となる。ｐとｑは既約多項式を満足する値であればよいため、例えばｐ＝１２７、ｑ＝１とする。ファイル名が８バイトを超過した場合はロングファイル名となる上、Ｍ系列のできるだけ離れた部分を走るようにするために、ｐとｑとが離れた値を選択した。
【００５１】
図６（ａ）はファイル名の文字列をビット列に展開したことを示す図である。入力されたファイル名はＵＮＩＣＯＤＥであり、例えば「東」を１６進数のコードで表記すると０ｘ６７７１、「京」は０ｘ４ＥＡＣとなる。拡張子部を除くファイル名部である「東京都千代田区丸の内地区」を１６進数のコードで表記すると、「６７  ７１  ４Ｅ  ＡＣ  ９０  ＦＤ  ５３  ４３  …  ５３３Ａ」となる。これをさらに２進数に展開すると「０１１００１１１  ０１１１０００１  ０１００１１１０  …００１１１０１０」の１９２ビットのビット列が形成される。
【００５２】
続いて、ＳＦＮ形式名格納部１６２２はビット列を計算して取得する（ステップＳＴ１０２）。ＳＦＮ名となるビット列は、初期ビット列の続きであるｎ＝１９２の値から始まる。図６（ｂ），（ｃ）はビット列の作成過程について説明する図である。上記線形漸化式からｎ＝１９２以降のビット列を作成する。Ｘ１９２＝Ｘ１９２−１２７−Ｘ１９２−１＝Ｘ６５−Ｘ１９１である。Ｘ６５は文字「代（０ｘ４ＥＥ３）」の上位から２ビット目（ア）にあたるので値は１、Ｘ１９１は文字「区（０ｘ５３３Ａ）」の最下位ビット（イ）にあたるので値は０となり、１と０の排他論理和からＸ１９２＝１（ウ）となる。
【００５３】
続いて、ＳＦＮ形式名格納部１６２２はビット列が終了したか否かを判断し（ステップＳＴ１０３）、終了していない場合は同様に次のビットの計算を行う。ｎ＝１９３の場合を算出するとＸ１９３＝１（エ）となる。ＳＦＮ形式のファイル名部は最大８バイトを格納することができるので、ＳＦＮ形式名格納部１６２２はｎ＝２５５の場合まで算出する。
【００５４】
上記の方法により求められたビット列は、１６進数で表記すると「Ｅ９  ７Ｂ  ４Ｃ  ４０  Ｃ４  ５８  Ｅ８  ５Ｆ」となる。ＳＦＮ形式名格納部１６２２は、算出した８バイトのコードをＳＦＮ形式のファイル名部のコードとして割り当てる。拡張子については、ＵＮＩＣＯＤＥからＳＪＩＳに文字コード変換し、３バイトの文字列「ＤＡＴ」を拡張子部に格納する。
【００５５】
ビットの計算が終了すると、ＳＦＮ形式名格納部１６２２はビット列のチェックを行う（ステップＳＴ１０４）。すなわち、ファイル名部に割り当てたコードのうち、先頭の１バイトが０ｘ００，０ｘＥ５，０ｘＦＦとなる場合は、ディレクトリエントリとして意味を持つコードであるため割り当てないようにする。この場合は、先頭の１バイトを削除し、２バイト目から格納する。不足した８バイト目のコードは、ｎ＝２５６からｎ＝２６３を計算して、補充する。また、８．３形式ファイル名やＳＦＮ形式ファイル名に格納できない禁止文字に相当するコードが存在する場合、空き領域を示す０ｘ２０が存在する場合にも、同様に８バイトが全て格納されるように補充する。
【００５６】
以上のように、ＳＦＮ形式名格納部１６２２はＬＦＮ名からＳＦＮ名を作成する。ＳＦＮ形式名格納部１６２２はさらに、作成したファイル名部と拡張子部とからチェックサムを計算し、全ＶＦＡＴ形式ディレクトリエントリのチェックサム領域にチェックサム値を設定する。ＳＦＮ形式ディレクトリエントリには、ファイル名の他、属性、日時等のファイル情報を設定する。ＬＦＮ形式名作成部１６２はＶＦＡＴ形式名ディレクトリエントリとＳＦＮ形式名ディレクトリエントリとを作成すると、動作を終了する。
【００５７】
８．３形式名作成部１６１またはＬＦＮ形式名作成部１６２は、ユーザに指定されたファイル名を格納するためのディレクトリエントリを作成した後、バッファ１４内の空き領域に上書きする。バッファ１４にデータが上書きされると、データ書き込み部１７が情報解析部１２によって読み込まれた位置に対応するようにメモリカード２に書き込む。
【００５８】
以上のように、この実施の形態１では、ＳＦＮ形式名格納部１６２２がＬＦＮ名作成時に最大周期列を利用してＳＦＮ名を作成するようにした。最大周期列を利用すると、１つの原始多項式で生成されるＭ系列は１通りしか存在しないため、ＬＦＮ名に基づいて特定の多項式と算出の開始位置および終了位置をシステム内で規定しておくことによって、一意に決定されるＳＦＮ名を作成することができる。したがって、従来はＳＦＮ名作成時に重複するＳＦＮ名がないかどうか検索する必要があったが、本発明により作成するＳＦＮ名は一意に決定できるため、重複するかどうかを検索する必要がなく、ＳＦＮ名を作成する時間を短縮できるという効果がある。また、ユーザが任意に指定したファイル名が変更されることがないという効果もある。なお、この実施の形態１では、ｐ＝１２７、ｑ＝１としたが、原始多項式を満足しかつ発生するビット列が６４ビット以上であれば任意の値を設定できる。
【００５９】
この実施の形態１では、例としてファイルを作成する場合について示したが、ディレクトリについても同様の手順により作成することができる。また、Ｍ系列により作成されたビット列は、ファイル名部にのみ割り当てたが、拡張子を含めた１１文字をビット列の対象としてもよい。
【００６０】
なお、ファイル名指定部１１から情報解析部１２に対してパス付ファイル名が供給されることを示したが、パス名とファイル名とを分離して供給してもよい。また、ファイル名指定部１１においてパス名はＵＮＩＣＯＤＥでなくＳＪＩＳコードで指定してもよい。さらに、バッファ１４のサイズはクラスタサイズに限定しない。ＦＡＴにおいてクラスタが連続して使用されている場合には、情報解析部１２がＦＡＴから次のクラスタを判断し、データ読み込み部１３が対象となるクラスタをバッファ１４に読み込み、引き続きファイル名検索部１５がファイル名を検索する。したがって、ＦＡＴにおいてクラスタが連続して使用されている場合も鑑み、バッファ１４はクラスタサイズの整数倍のサイズでもよい。
【００６１】
実施の形態２．
上記実施の形態１では最大周期列を用いてＬＦＮ名からＳＦＮ名を作成することを説明したが、この実施の形態２では、最大周期列を用いてＳＦＮ名が作成されたファイルまたはディレクトリの情報をユーザが指定して検索する手順について説明する。
【００６２】
ＬＦＮ形式名のファイルまたはディレクトリの情報を取得する場合、従来は以下の手順で実行されていた。すなわち、ユーザが指定したパス付きファイル名に基づいて情報解析部１２が読み込むクラスタ番号を取得し、データ読み込み部１３が取得したクラスタ番号の内容をバッファ１４に読み込む。続いて、ファイル名検索部１５がバッファ１４から、分割されているＶＦＡＴ形式ディレクトリエントリのファイル名を取得し、ファイル名領域のファイル名を連結してファイル名を作成し、指定されたファイル名と一致するか否かを判定する。さらに、ＶＦＡＴ形式ディレクトリエントリに対応するＳＦＮ形式ディレクトリエントリを特定し、ファイル情報を取得していた。
【００６３】
これに対し、この発明の実施の形態２による情報記録装置１０は、以下の手順でファイル情報を取得する。
ユーザは検索したいパス付ファイル名をファイル名指定部１１に設定する。ファイル名指定部１１は取得したパス付ファイル名を情報解析部１２に供給する。情報解析部１２は取得したパス付ファイル名をパス名とファイル名に分離し、パス名の解析を行って、該当するディレクトリの内容が含まれるクラスタ番号をデータ読み込み部１３に通知する。データ読み込み部１３は指定されたクラスタ番号からブロック番号を取得し、そのブロックをメモリカード２から読み込んでバッファ１４に格納する。ファイル名検索部１５は、検索したいファイル名の形式に応じて８．３形式名検索部１５１またはＬＦＮ形式名検索部１５２が検索を実行する。８．３形式名の検索動作は従来と同様であるため、ここではＬＦＮ形式名検索部１５２の動作について説明する。
【００６４】
図７はこの実施の形態２に係るＬＦＮ形式名検索部１５２の動作を示すフローチャートである。この図を参照してＬＦＮ形式名検索部１５２の動作について説明する。
ＬＦＮ形式名検索部１５２は指定されたファイル名がＬＦＮ名である場合に検索指示を受け取る。ＬＦＮ形式名検索部１５２は上記実施の形態１で示したＳＦＮ形式名格納部１６２２と同様の動作によって、ＬＦＮ名に基づきＳＦＮ名を作成する（ステップＳＴ２０１）。続いて、ＬＦＮ形式名検索部１５２はバッファ１４を検索し、８．３形式ディレクトリエントリおよびＳＦＮ形式ディレクトリエントリを特定してファイル名部および拡張部と、作成したＳＦＮ名とを順番に比較する（ステップＳＴ２０２）。
【００６５】
バッファ１４内のファイル名部と拡張子部が、ＬＦＮ形式名検索部１５２が作成したＳＦＮ名と一致する場合は、ユーザが指定したファイル名とバッファ１４内のファイル名とが一致すると判定される。ファイル名が一致したディレクトリエントリはファイル情報として、日時情報、クラスタ番号、ファイルサイズを保持するので、必要に応じてこれらの情報を取得する（ステップＳＴ２０３）。
【００６６】
以上のように、最大周期列を利用してファイル名が作成されたファイルの情報を検索する際に、ＬＦＮ形式名検索部１５２が、ユーザが指定したファイル名に基づいて一意に決定できるＳＦＮ名を作成し、これに基づいて検索を行うようにした。したがって、従来のファイル情報の取得方法と比較して、処理工程を短縮することができる効果が得られる。
【００６７】
なお、例としてファイルを探索する場合について説明したが、ＬＦＮ形式名のディレクトリについても同様の手順により探索が可能である。
【図面の簡単な説明】
【００６８】
【図１】この発明の実施の形態１による情報記録装置のブロック図である。
【図２】ＤＯＳ形式のＦＡＴ型のファイルシステムのファイル構成を説明する図である。
【図３】ＭＳ−ＤＯＳ（登録商標）のＦＡＴ型のファイルシステムにおいて、ディレクトリエントリがクラスタ内に格納されている様子を示す図である。
【図４】（ａ）は８．３形式ディレクトリエントリの構成を説明する図、（ｂ）はＶＦＡＴ形式ディレクトリエントリの構成を説明する図、（ｃ）はＳＦＮ形式ディレクトリエントリの構成を説明する図である。
【図５】ＳＦＮ形式名格納部の処理手順を示すフローチャートである。
【図６（ａ）】ファイル名の文字列をビット列に展開したことを示す図である。
【図６（ｂ）】ビット列の作成過程について説明する図である。
【図６（ｃ）】ビット列の作成過程について説明する図である。
【図７】この発明の実施の形態２に係るＬＦＮ形式名検索部の動作を示すフローチャートである。
【符号の説明】
【００６９】
１０  情報記録装置、１１  ファイル名指定部、１２  情報解析部、１３  データ読み込み部、１４  バッファ、１５  ファイル名検索部、１６  ファイル名作成部、１７  データ書き込み部、１５１  ８．３形式名検索部、１５２  ＬＦＮ形式名検索部、１６１  ８．３形式名作成部、１６２  ＬＦＮ形式名作成部、１６２１  ＬＦＮ形式名格納部、１６２２  ＳＦＮ形式名格納部。
【図１】
2005222483.tif 000003
【図２】
2005222483.tif 000004
【図３】
2005222483.tif 000005
【図４】
2005222483.tif 000006
【図５】
2005222483.tif 000007
【図６（ａ）】
2005222483.tif 000008
【図６（ｂ）】
2005222483.tif 000009
【図６（ｃ）】
2005222483.tif 000010
【図７】
2005222483.tif 000011