(57)【要約】【課題】新規にファイルを記録するのにあたって、迅速にファイル名が決定されるようにして、ファイル記録処理をより効率的なものとする。【解決手段】ディレクトリエントリに対して最大ファイル番号を格納する領域を定義する。ファイル名は、ファイル番号と固定の文字列とから成るべきものとされ、この最大ファイル番号は、現ディレクトリエントリが格納するファイルが使用するファイル番号のうちで、最大のファイル番号を常に示しているようにメンテナンスされる。新規ファイルのファイル名を設定するときには、記録先ディレクトリに対応するディレクトリエントリに格納される最大ファイル番号について１インクリメントした新規の最大ファイル番号を、新規ファイルのファイル名におけるファイル番号とする。これにより、例えばファイル番号の設定のために、記録済みのファイルのファイル名を順次参照する処理が省かれる。【選択図】図１１
2006178633.tif 000002
【特許請求の範囲】
【請求項１】
階層構造により記憶媒体に記憶される情報の管理を行うための情報であり、上記階層構造を構築する階層要素間の階層関係が表現されるようにして、所定の情報を格納し、上記記憶媒体への記録が行われる階層関係指示情報を管理する記憶媒体情報管理手段と、
上記階層関係指示情報における所定位置に格納される情報であり、上記階層要素に対する名称の設定状況に応じた所定内容を有する情報である名称設定状況情報を、階層位置単位で管理する名称設定状況情報管理手段と、
新規階層要素を作成するのにあたり、上記新規階層要素を作成する階層位置に対応する名称設定状況情報に基づいて、上記新規階層要素の名称を設定する名称設定手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
上記階層要素に設定される名称においては、階層要素ごとに付した番号である階層要素番号を含むべきとされることに対応して、上記名称設定状況情報管理手段は、名称設定状況情報として、同じ階層位置に格納される階層要素の名称に使用されている上記階層要素番号の最大値である、最大階層要素番号の情報を管理するようにされており、
上記名称設定手段は、上記最大階層要素番号としての値に対して所定値を加算して得た値を、新規階層要素の名称に含まれる階層要素番号として設定するようにされている、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
上記名称設定手段は、
上記最大階層要素番号としての値が、階層要素番号として使用可能な上限値と等しい場合には、未使用となっている最大階層要素番号以下の階層要素番号のうちから１つの階層要素番号を選択し、この選択した階層要素番号を、新規階層要素の名称に含まれる階層要素番号として設定するようにされている、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
上記記憶媒体情報管理手段は、記憶媒体に記憶される情報を、所定の情報単位により管理するとともに、上記情報単位と、この情報単位または他のディレクトリを格納するディレクトリを上記階層要素として階層構造を構築するようにされ、
上記名称設定状況管理手段は、上記情報単位に対する名称の設定状況に応じた名称設定状況情報を管理し、
上記名称設定手段は、上記名称設定状況情報に基づいて、上記情報単位としての階層要素についての名称を設定するようにされている、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
上記記憶媒体情報管理手段は、記憶媒体に記憶される情報を、所定の情報単位により管理するとともに、上記情報単位と、この情報単位または他のディレクトリを格納するディレクトリを上記階層要素として階層構造を構築するようにされ、
上記名称設定状況管理手段は、上記ディレクトリに対する名称の設定状況に応じた名称設定状況情報を管理し、
上記名称設定手段は、上記名称設定状況情報に基づいて、上記ディレクトリとしての階層要素についての名称を設定するようにされている、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
階層構造により記憶媒体に記憶される情報の管理を行うための情報であり、上記階層構造を構築する階層要素間の階層関係が表現されるようにして、所定の情報を格納し、上記記憶媒体への記録が行われる階層関係指示情報を管理する記憶媒体情報管理手順と、
上記階層関係指示情報における所定位置に格納される情報であり、上記階層要素に対する名称の設定状況に応じた所定内容を有する情報である名称設定状況情報を、階層位置単位で管理する名称設定状況情報管理手順と、
新規階層要素を作成するのにあたり、上記新規階層要素を作成する階層位置に対応する名称設定状況情報に基づいて、上記新規階層要素の名称を設定する名称設定手順と、
を実行することを特徴とする情報処理方法。
【請求項７】
階層構造により記憶媒体に記憶される情報の管理を行うための情報であり、上記階層構造を構築する階層要素間の階層関係が表現されるようにして、所定の情報を格納し、上記記憶媒体への記録が行われる階層関係指示情報を管理する記憶媒体情報管理手順と、
上記階層関係指示情報における所定位置に格納される情報であり、上記階層要素に対する名称の設定状況に応じた所定内容を有する情報である名称設定状況情報を、階層位置単位で管理する名称設定状況情報管理手順と、
新規階層要素を作成するのにあたり、上記新規階層要素を作成する階層位置に対応する名称設定状況情報に基づいて、上記新規階層要素の名称を設定する名称設定手順と、
を情報処理装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶媒体に記憶される情報を階層構造により管理する情報処理装置、情報処理方法、及びプログラムに関するものである。
【背景技術】
【０００２】
近年、デジタルスチルカメラなどの機器においては、例えば、静止画データファイルをはじめ、その機器が対応するファイルとしての所定形式のデータを記録再生するために、何らかの記憶媒体（メディア）を使用するようにされている。
例えば、現状のデジタルスチルカメラの場合には、半導体メモリ素子を備える記憶装置（半導体記憶装置）が広く使用されている状況にある。
上記した半導体記憶装置は、例えばハードディスクドライブ（ＨＤＤ）などと同様にランダムアクセスが可能なメディアであり、記憶されるファイルを管理するためのファイルシステムとしても、例えばＦＡＴファイルシステムなどに代表される、ツリー型ディレクトリ構造（階層構造）により管理する方式のものが採用されることが一般的である。
【０００３】
ツリー型ディレクトリ構造による管理では、ファイルやディレクトリ（フォルダ）ごとに名称（ファイル名、ディレクトリ名）を与えることができるようになっているが、現状のデジタルスチルカメラでは、これらファイル名／ディレクトリ名の入力操作などでユーザに必要以上の負担がかからないようにすることなどを目的として、一定の名称付与規定の下で、所定の規則に従って自動設定するようになっているのが通常である。
【０００４】
ツリー型ディレクトリ構造を採用するファイル管理方式では、同じ階層に存在するファイル間、あるいはディレクトリ間での名称の重複が禁止されているのが通常である。名称が重複することを許すと、ファイル名／ディレクトリ名を使用してパスを特定することができなくなるからである。
このことから、ファイル名／ディレクトリ名を自動設定するのにあたって第１に要求されることは、同じ階層に存在するファイル間、あるいはディレクトリ間で名称が重複しないようにすることであるといえる。
例えば、特許文献１には、ファイル記録のときの日付、時刻に基づいてファイル名称を作成することで、ファイル名の重複を生じさせないようにした構成が示されている。
【０００５】
【特許文献１】特開平５−１２３４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明としても、ツリー型ディレクトリ構造（階層構造）を構築する要素である、ファイル／ディレクトリなどの階層要素の名称（階層要素名）について重複が生じないようにして、階層要素名の自動設定が行われるようにすることを目的とする。そのうえで、この階層要素名の自動設定の処理についてできるだけ効率化が図られるようにする。
【課題を解決するための手段】
【０００７】
そこで本発明は、上記した課題を考慮して、情報処理装置として次のように構成することとした。
つまし、階層構造により記憶媒体に記憶される情報の管理を行うための情報であり、階層構造を構築する階層要素間の階層関係が表現されるようにして、所定の情報を格納し、記憶媒体への記録が行われる階層関係指示情報を管理する記憶媒体情報管理手段と、階層関係指示情報における所定位置に格納される情報であり、階層要素に対する名称の設定状況に応じた所定内容を有する情報である名称設定状況情報を、階層位置単位で管理する名称設定状況情報管理手段と、新規階層要素を作成するのにあたり、この新規階層要素を作成する階層位置に対応する名称設定状況情報に基づいて新規階層要素の名称を設定する名称設定手段とを備えて構成することとした。
【０００８】
また、情報処理方法として、階層構造により記憶媒体に記憶される情報の管理を行うための情報であり、階層構造を構築する階層要素間の階層関係が表現されるようにして、所定の情報を格納し、記憶媒体への記録が行われる階層関係指示情報を管理する記憶媒体情報管理手順と、階層関係指示情報における所定位置に格納される情報であり、階層要素に対する名称の設定状況に応じた所定内容を有する情報である名称設定状況情報を、階層位置単位で管理する名称設定状況情報管理手順と、新規階層要素を作成するのにあたり、この新規階層要素を作成する階層位置に対応する名称設定状況情報に基づいて新規階層要素の名称を設定する名称設定手順とを実行するように構成することとした。
【０００９】
また、上記情報処理方法を構成する手順を情報処理装置に実行させるようにしてプログラムを構成することとした。
【００１０】
上記各構成によれば、本発明としては、階層構造により記憶媒体に記憶される情報を管理することとしている。また、この階層構造による情報管理のために、階層関係指示情報を使用する。この階層関係指示情報は、階層構造を構築する階層要素間の階層関係を表現するようにして記憶媒体に記録されている。
そのうえで、本発明では、上記階層関係指示情報の所定位置に対して名称設定状況情報を格納することとしている。この名称設定状況情報は、常に、階層要素の名称の設定状況を階層位置の単位で反映した内容を有するようにして管理される。
そして、新規階層要素を作成するのにあたっては、この新規階層要素を作成する階層位置に対応する名称設定状況情報に基づいて、上記新規階層要素の名称を設定するようにしている。つまり、新規階層要素を生成しようとする階層に既に存在する階層要素についての名称の設定状況に基づいて、新規階層要素の名称を設定する。
【発明の効果】
【００１１】
上記したことから、本発明では、新規階層要素の名称について、同じ階層において既に存在する他の階層要素の名称と重複しないように設定することが可能になる。
そのうえで、新規階層要素の名称を設定するのにあたっては、この新規階層要素を配置させる階層位置に対応した名称設定状況情報を参照すればよく、例えば、新規階層要素を配置させる階層位置内で設定されている名称を逐一しらべる必要はない。つまり、新規階層要素の名称設定のための処理としては、より簡略化されている。
また、上記のようにして、新規階層要素の名称設定の基となる名称設定状況情報については、階層関係指示情報に格納することとしている。つまり、本発明では、名称設定状況情報を、個別に管理するのではなく、記憶媒体の情報管理のために本来的に必要な情報である階層関係指示情報に組み込むこととしている。これにより、名称設定状況情報を取得するのにあたり、階層関係指示情報以外の情報にアクセスする必要をなくしている。
このようにして、本発明としては、階層要素の名称設定のための処理について、例えば簡略化やアクセス回数の削減が図られるなど、これまでよりも効率的なものとなっている。これにより、例えば階層要素の名称設定の処理を高速化することも可能となるが、このことは、新規階層要素の作成処理が高速化されることにつながるものである。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を実施するための最良の形態（以下、実施の形態という）について説明する。本実施の形態としては、本発明による情報処理装置の構成をデジタルスチルカメラに適用した場合を例に挙げることとする。
【００１３】
図１は、本実施の形態としてのデジタルスチルカメラ１の構成例を示すブロック図である。
この図に示すデジタルスチルカメラ１において、光学系部２は、撮像レンズ、絞りなどを備えて成り、入射された光を撮像光として、光電変換部３に結像させる。また、光学系部２においては、フォーカス（焦点）調整のためのフォーカス調整機構や、絞り値に応じて絞りを可変する絞り可変機構などを備えているものとされ、このような機構部の駆動は、カメラ機能部６から出力される駆動信号によって行われる。カメラ機能部６は、ＣＰＵ１０の制御に応じて、しかるべきフォーカス状態や絞りの状態等が得られるように所要の駆動信号を出力するようにされている。
また、例えば光学ズーム機能を与えることとした場合には、光学系部２においてズームレンズを移動させるズーム機構を設けると共に、上記と同様にして、ＣＰＵ１０の制御に応じて上記ズーム機構を移動させる駆動部を設けるようにすればよい。さらに、カメラ機能部６として、ストロボを設けたうえで、ストロボ発光機能を与えるように構成することもできる。
【００１４】
光電変換部３は、例えば光電変換素子であるＣＣＤ(Charge Coupled Device)を備えて構成され、光学系部２から入射されて受光面にて結像された撮像光を光電変換することで撮像信号を生成して画像信号処理部４に出力する。撮影時においては、例えば露出設定結果に応じて決定されるシャッター速度の指示が、ＣＰＵ１０から画像信号処理部４に通知される。画像信号処理部４では、通知されたシャッター速度に対応する走査タイミング信号を光電変換部３に出力する。光電変換部３は、この走査タイミング信号に応じて走査を行うようにして、光電変換処理を実行して映像信号を出力するようにされる。
【００１５】
画像信号処理部４は、光電変換部３から入力されたアナログの映像信号について、例えばゲイン調整、サンプルホールド処理を施すことによって波形整形を行ったうえで、Ａ／Ｄ変換を行うことで、デジタルとしての画像信号データに変換する。そして、この変換処理によって得られたデジタル画像信号について、例えば、表示用輝度データの生成処理などをはじめ、表示部７にて表示が行われるようにするための画像信号処理を実行する。これに伴い、画像信号処理部４では、ＣＰＵ１０の制御に応じてキャラクタ画像なども撮像画像に重畳して表示可能なように、いわゆるオンスクリーンディスプレイのための信号処理も実行可能とされている。
表示部７として採用される実際のディスプレイデバイスについては特に限定されるべきものではないが、現状においては、広く液晶ディスプレイパネルが採用されている。
【００１６】
また、画像信号処理部４は、光電変換部３から入力されたアナログ画像信号を変換して得たデジタル画像信号について、例えば所定方式による画像データ圧縮処理を施して、圧縮画像データを生成することも可能とされている。この圧縮画像データは、記録用データとして、例えばＣＰＵ１０の制御によってメディアコントローラ１３に転送される。なお、この図では、記録用データは、ＣＰＵ１０を介するようにしてメディアコントローラ１３に転送される形態として示されている。
【００１７】
また、画像信号処理部４では、光電変換部３から入力された画像（映像）信号や、後述するメディアから読み出された静止画像データなどを、所定方式のアナログ画像信号又はデジタル画像信号に変換して、画像入出力部５を介して外部機器などに出力可能とされている。
【００１８】
また、この画像入出力部５は、外部から所定方式の画像信号を入力可能ともされており、この入力した画像信号を画像信号処理部４の処理を経て表示部７に表示させることが可能とされる。また、画像信号処理部４は、画像入出力部５が入力した画像信号について、光電変換部３から入力されたアナログ画像信号と同様にして、記録用データに変換してメディアコントローラ１３に転送することもできる。
これに対応して、画像入出力部５は、例えば所定方式に従った映像（画像）信号出力端子／映像信号入力端子を備える。
【００１９】
メディアコントローラ１３は、ＣＰＵ１０との連携により、所定の異なる種別の外部のメディア（記憶媒体）、外部記憶デバイス（記憶装置）に対応して、これらのメディアに対するデータ処理に関する制御処理を実行可能に構成される。ここでいうメディアに対するデータ処理とは、メディアのフォーマット処理や、メディアの記憶領域に対するファイル及びファイル管理のための情報（ファイル管理情報）などの書き込み／読み出し処理など、メディアに記憶されるべきデータに関連する何らかの処理をいう。
【００２０】
本実施の形態では、メディアコントローラ１３に対しては、先ず、ハードディスクドライブ（ＨＤＤ）が接続可能とされている。ＨＤＤは、周知のようにしてハードディスクといわれる、記憶媒体として磁気ディスクを備える記憶デバイスであり、現状においては、比較的低コストでギガバイトクラスの大容量が得られる。また、周知のようにして、記憶媒体である磁気ディスクに対する物理的なデータの読み出し／書き込みは、磁気ヘッドにより、磁気ディスク上に形成されるトラックをトレースしながら磁界印加、磁界検出を行うことによって実現される。
また、この場合のＨＤＤとしては、例えばデジタルスチルカメラ１に固定的に内蔵されるものとしてもよいし、デジタルスチルカメラ１（ホスト）に対して装脱可能な、所定の規格に従ったリムーバブル形態とされてもよい。
【００２１】
また、この図では、メディアコントローラ１３は、所定方式の光ディスク、光磁気ディスク、及び半導体メモリ素子を備える記憶デバイスである半導体記憶装置などにも対応してデータ処理が可能であることとされている。
光ディスク及び光磁気ディスクなどに対応する場合の実際としては、これらの記録（記憶）媒体に対応してデータの書き込み／読み出しが可能に構成されたドライブとしてのデバイスを備え、これらのデバイスとメディアコントローラ１３とを接続することになる。
また、半導体記憶装置に対応する場合は、半導体記憶装置の実際の規格に従って、この半導体記憶装置が装脱されるスロットを、デジタルスチルカメラ１の本体に備える。このスロットに対して半導体記憶装置が適正に装填されると、半導体記憶装置のピン端子がスロットのコネクタ部位の電極と接続され、これにより、半導体記憶装置は、メディアコントローラ１３との間で通信が可能に接続されることになる。
【００２２】
メディアコントローラ１３は、先に説明したようにして、記録用データとしての圧縮画像データ（及びオーディオデータ）が転送されてくるのに応じて、この圧縮画像データを、メディアコントローラ１３と接続されているメディアのうちから対象として選択されているメディアに対してさらに転送する。データが転送されたメディアでは、メディアコントローラ１３側からの指示に応じて記憶領域に対してデータを書き込んで記憶させる。このようにしてメディアに記憶される圧縮画像データが、いわゆる写真画像の静止画ファイルとして記憶管理されることになる。このメディアに記憶される静止画ファイルの管理は所定方式のファイルシステムによって行われる。
【００２３】
また、例えばメディアに記憶されている静止画ファイルを再生するときには、ＣＰＵ１０及びメディアコントローラ１３は、指定された静止画ファイルにアクセスして読み出しを行い、画像信号処理部４に転送する。
このようにして静止画ファイルが転送されてきた場合、画像信号処理部４は、この静止画ファイルの画像が表示部７にて再生表示されるように、画像信号処理を実行する。
【００２４】
また、本実施の形態のデジタルスチルカメラ１は、音声処理部８及び音声入出力部９を備えることで、音声信号の入出力も可能とされている。
音声入力については、音声入出力部９としてマイクロフォンなどを備え、外部音声の収音を行って音声信号に変換して音声を入力するようにされる。あるいは、音声信号入力端子などを備えて外部のオーディオ機器などからオーディオ信号を入力する。そして、このようにして入力した音声信号を音声処理部８に出力する。音声処理部８は、所定形式に符号化されたデジタルオーディオデータに変換するなどの音声信号処理を施す。このデジタルオーディオデータは、ＣＰＵ１０の制御によって、例えば静止画データに付随する所定形式のオーディオデータや、所定形式のオーディオデータファイルなどの記録データとして、例えば上記のようにしてメディアに記憶させることが可能とされる。
また、上記のようにしてメディアに記憶されたオーディオデータを、音声処理部８及び音声入出力部９により音声として再生出力することも可能とされる。例えば、ＣＰＵ１０は、メディアからオーディオデータを読み出して音声処理部８に転送する。音声処理部８は、転送されてきたオーディオデータの形式に応じた復号処理など所要の音声信号処理を施して、アナログ音声信号として音声入出力部９に出力する。音声入出力部９は、スピーカあるいはヘッドフォン端子などを備え、例えば音声処理部８から入力された音声信号を増幅してスピーカから音声として出力する。あるいは、ヘッドフォン端子に供給する。また、例えばメディアから再生されたオーディオデータは、音声処理部８の音声信号処理を経た後に、音声入出力部９を介して、外部に対して所定形式のオーディオ信号、オーディオデータとして出力することも可能とされている。この場合、音声入出力部９としては、音声処理部８から出力されるオーディオ信号、オーディオデータの形式に対応するオーディオ出力端子を備えることになる。
【００２５】
ＣＰＵ(Central Processing Unit)１０は、プログラムを実行することでデジタルスチルカメラ１についての各種制御処理を実行する。ＲＯＭ１１は、ＣＰＵ１０が実行する各種プログラムのほか、ＣＰＵ１０が処理を実行するのに使用する各種設定情報などが記憶されている。ＲＡＭ１２は、ＣＰＵ１０がプログラムに従った処理を実行するときの作業領域として使用されるもので、各種の演算処理結果などのデータが保持される。
また、不揮発性メモリ１２ａは、例えばフラッシュメモリなどをはじめとした、電源供給が停止しても記憶内容が消去されない性質のメモリ素子により形成され、ＣＰＵ１０の制御によって、データの書き込み／読み出しが実行される。この不揮発性メモリ１２ａに記憶されるべきデータ（情報）としては、適宜内容の変更が行われる設定情報などが一般的であるが、特に限定されるものではなく、実際のデジタルスチルカメラ１の仕様などに応じて所要の各種の情報を記憶することとされればよい。
【００２６】
この場合の操作入力部１５は、デジタルスチルカメラ１に備えられる各種操作子を一括して示しているものとされる。例えば、この操作入力部１５における操作子としては、写真撮影時に操作されるシャッターボタン、撮影モードなどを選択する操作子、パラメータのアップ／ダウンを行うための操作子などが含まれる。また、操作入力部１５として、例えば表示部７の表示画面を利用したＧＵＩとしての入力操作を実現するための構成を備えるようにしてもよい。
【００２７】
通信部１６は、ＣＰＵ１０の制御に応じて、所定のデータ通信方式により外部デバイスと通信を行うためのハードウェア、ソフトウェアを実装して構成される部位である。この通信部１６が対応するデータ通信方式としては、有線、無線を問わず特に限定されるべきものではなく、また、対応するデータ通信方式の数も限定されるべきものでない。現状であれば、データ通信方式としては、有線ではEthernet（商標）などのネットワーク、ＵＳＢ(Universal Serial Bus)、IEEE1394などのデータバス規格などを挙げることができる。また、無線であれば、Bluetooth（商標）などのデバイス間近距離無線通信、IEEE802.11a/b/gなどの無線ＬＡＮ(Local Area Network)規格を挙げることができる。
【００２８】
電源部１７は、デジタルスチルカメラ１における各種のハードウェアデバイスに対して動作電源を供給するもので、例えばバッテリや電源アダプタからの電力供給を受けて動作する電源回路などを備えて構成される。
【００２９】
上記のようにして、本実施の形態のデジタルスチルカメラ１では、主としては、撮像により得られた静止画ファイルを、ＨＤＤ、各種光学ディスク状記録媒体（光磁気ディスクを含む）、半導体記憶装置などのメディア（記憶媒体）に対して記憶させることができるようになっている。
上記のようにしてメディアに記憶されるファイルは、通常は、所定フォーマットによるファイルシステムにより管理されることになるのであるが、本実施の形態としては、ＦＡＴ(File Allocation Table)ファイルシステムにより管理されるものとしている。ＦＡＴファイルシステムは、周知のようにして、ツリー型のディレクトリ構造によりファイルを管理するようにされており、また、データの書き込み／読み出しについては、クラスタといわれる論理的な最小データ管理単位により行うものとされている。クラスタは、メディアにおける物理的なデータ書き込み／読み出しの最小単位であるセクタを所定数（一般には２のべき乗により表される数）にまとめたものが１単位となる。
【００３０】
図２は、ＦＡＴファイルシステムの一般的なシステム構成を階層モデルにより示している。
先ず、この階層モデルとしては、ソフトウェア層と、その下層となるハードウェア層に大別される。
ソフトウェア層は、この場合には、メディアに対してホスト（実施の形態ではデジタルスチルカメラ１）となるデバイスにおいて、ＣＰＵが実行するプログラム、及び各種ファームウェア、ミドルウェアなどにより実現されるソフトウェア処理が対応するものとされる。この場合のソフトウェア層は、図示するように、上層から下層にかけて、アプリケーション１００、ファイルシステム１０１、デバイスドライバ１０２の各層が位置する。
ハードウェア層には、メディアそのものの物理的な記憶領域が位置するものとして考えることができる。
【００３１】
アプリケーション１００は、例えばファイルの記録／再生機能などを有して、メディアを使用するアプリケーションソフトウェアが対応し、ファイルレベルでのアクセス要求をファイルシステム１０１に対して行う。
【００３２】
ファイルシステム１０１は、ファイルシステムとしての機能を実現するソフトウェアが対応する。本実施の形態では、ＦＡＴファイルシステムを採用することとしているので、ファイルシステム１０１の機能を提供するソフトウェアとしても、ＦＡＴファイルシステムに対応して構成されるものとなる。
このファイルシステム１０１では、アプリケーション１００からのファイルレベルによるアクセス要求を、ＦＡＴファイルシステムのフォーマットにおけるデータの管理単位となるクラスタのレベルに変換して、デバイスドライバ１０２に対してアクセス要求を行う。
【００３３】
デバイスドライバ１０２は、コントロール対象のデバイスとなるメディアをコントロールするためのソフトウェアが対応し、上記ファイルシステム１０１からのＦＡＴファイルシステムフォーマットに従ったクラスタレベルによるアクセス要求を、メディア１０３上におけるデータの記録再生単位であるセクタのレベルに変換して、メディア１０３へのアクセス要求を行う。
【００３４】
この場合のメディア１０３は、論理的にはＦＡＴファイルシステムに従ってフォーマット（初期化）されたものとなる。図１では、ＨＤＤ、光学ディスク状記録媒体、半導体記憶装置など、メディアコントローラ１３と接続されている記憶媒体、記憶装置がここでのメディア１０３に相当する。そして、メディア１０３は、デバイスドライバ１０２からのセクタレベルのアクセス要求に応答して、指定されたセクタアドレスからデータを読み出して、デバイスドライバ１０２に返す。つまり、セクタレベルでのアクセス応答を実行する。
デバイスドライバ１０２は、メディア１０３からのセクタレベルでのアクセス応答、つまりセクタ単位でのデータの受け取りを行い、この受け取ったデータについて、クラスタ単位によるデータとして扱ってファイルシステム１０１に受け渡す（クラスタレベルでのアクセス応答）。
ファイルシステム１０１は、デバイスドライバ１０２から受け取ったデータを、ファイルレベルのデータとしてアプリケーション１００に受け渡すようにされる。アプリケーション１００は、ファイルとして受け取ったデータについて、例えばユーザによる操作入力などに応じたアプリケーションレベルでの所要の処理を実行する。
【００３５】
また、ＦＡＴファイルシステムは、記憶ファイルをツリー型のディレクトリ構造により管理し、また、ファイルをクラスタ単位の集合として管理するようにされている。このようなファイル管理、データ管理は、周知のようにしてディレクトリエントリ、及びＦＡＴといわれるテーブル情報を備えることにより実現されるものとなる。ディレクトリエントリは、メディア上におけるファイル、ディレクトリ（サブディレクトリ）の所在をクラスタレベルで示す情報であり、ＦＡＴは、ディレクトリ、ファイルを成すクラスタレベルでのチェイン（リンク、連結）を示す情報である。
【００３６】
図３は、ＦＡＴの規格に従ったメディアのフォーマット構造を示している。
ＦＡＴの形式としては複数が規定されているのであるが、ここでは、ＦＡＴ１６及びＦＡＴ３２の各形式に対応するフォーマット構造を示すこととする。
先ず、図３の左側に示されるＦＡＴ１６に対応するフォーマット構造から説明する。
この図に示す構造は、ＬＢＡ(Logical Block Addressing)に従った論理的なものとなっている。つまり、最も上を先頭セクタ（LBA=0）として、以降、下に向かってブロック（セクタ）の番号が進んでいくものとなる。
また、ＦＡＴのファイルシステムでは、１つの物理的記憶領域を複数のパーティションに分割可能とされているが、ここでは説明の便宜上、１パーティションとした場合のフォーマット構造を示している。
【００３７】
先ず、LBA=0として表される先頭セクタは、ＭＢＲ(Master Boot Recorder) といわれる、ブート領域となっている。
【００３８】
ＭＢＲの構造を図４（ａ）に示す。
１セクタは５１２バイトのサイズであり、従って、ＭＢＲとしても５１２バイトとなる。図４（ａ）では、このＭＢＲの領域における５１２バイトについて、先頭から最終のバイト位置を、0000h〜01FFhまでの１６進法による番号を振って表現したうえで、１６バイト単位を１列として配列して示している。なお、１６進法の表記を行うのにあたっては、上記0000h、或いは01FFhのようにして、数値の最後尾に１６進法表記であることを示すhを付すこととする。
先ず、バイト位置0000h〜01BDhまでの４４６バイトの領域は、ＯＳ(Operating System)起動用のメディアとして使用される場合において、その起動（ブート：boot）のためのコード（起動コード）が格納される領域である。
【００３９】
ＭＢＲにおけるバイト位置01BEh〜01FDhまでの６４バイトの領域は、パーティションテーブルとされており、起動時において必要とされるパーティションごとに関する所定の情報が格納される。このパーティションテーブルの領域は、さらに１６バイト単位で４つの領域に分割されることになっており、これらの４分割された領域は、先頭から順に、パーティション１、パーティション２、パーティション３、パーティション４に対応する領域となっている。これらのこれらのパーティションごとに対応する各領域は、パーティションごとのエントリの領域となる。
【００４０】
また、ＭＢＲにおける最終の２バイトの領域には、現セクタがＭＢＲであることの識別子として55AAhが格納される。
【００４１】
上記パーティションのエントリは、図４（ｂ）に示す構造を有するものとされる。先ず、最上位のバイト位置00hは、該当パーティションについての、起動ドライブとしての指定の有無を示すフラグを格納する領域とされる。
また、続くバイト位置01h〜03hによる３バイトの領域は、該当パーティションの開始セクタをＣＨＳ（Cylinder/Head/Sector）により表現した値が格納される。バイト位置05h〜07hから成る３バイトの領域により、該当パーティションの終了セクタをＣＨＳにより表現した値が格納される。
また、バイト位置08h〜0Bhによる４バイトの領域により、該当パーティションの開始セクタをＬＢＡにより示す値を格納することとしている。
【００４２】
バイト位置0Ch〜0Fhから成る４バイトの領域は、該当パーティションのデータサイズ（パーティションサイズ）を示す値を格納する。
【００４３】
バイト位置04hが示す１バイトの領域は、システム識別子ともいわれる、該当パーティションが対応するプラットフォーム、ファイルシステムなどのタイプを示す値を格納する。
【００４４】
説明を図３に戻す。
ＭＢＲとしての先頭セクタに続けては所定セクタ数による空き領域を設けることとしている。そして、この空き領域より後となるセクタ領域により、パーティション単位の領域を形成する。
【００４５】
１パーティション内における先頭セクタから所定のバイト数までによる領域は、システム関連の情報を格納するシステム領域となる。
このシステム領域において先頭セクタから開始される所定バイト数の領域は、ＢＰＢ(BIOS Parameter Block/Boot Parameter Block)とされ、ここでは現パーティションに関して、例えばホスト側のＢＩＯＳ(Basic Input/Output System)などのように、ブロックデバイスコントロールのためのプログラムが利用すべき所要のデータが格納される。ＢＰＢに格納する情報においては、次に説明するＦＡＴ領域の数、メインのＦＡＴ領域の開始セクタ、ＦＡＴ領域のセクタ数などの情報を含む。
【００４６】
ＢＰＢに続けてはＦＡＴ１、ＦＡＴ２のＦＡＴ領域が順に配置される。通常は、ＦＡＴ１，２のいずれか一方の領域がメインのＦＡＴ領域として使用される。他方のＦＡＴ領域は、一般的には、メインのＦＡＴ領域の内容をコピーしたミラー領域として使用するなど、例えばメインのＦＡＴ領域の予備領域、バックアップ用領域として使用される。
【００４７】
これらのＦＡＴ領域は、ＦＡＴエントリが、データ領域内のクラスタ番号順に配列されて形成される領域とされる。ＦＡＴエントリと、データ領域内のクラスタとは１対１で対応しており、ＦＡＴエントリには、ディレクトリ、ファイルの記憶結果に応じて、該当クラスタについての情報として、例えば、未使用、該当ファイルにおいて現クラスタの次にチェインされるクラスタ番号、不良クラスタ、EOF(End Of File：ファイルにおける最終クラスタ)などのうちから、何れかを示す情報が格納される。
ＦＡＴ１６フォーマットでは、クラスタ番号を２バイト（１６ビット）により表すこととしており、これに応じて、ＦＡＴエントリの個々のサイズも２バイトとされている。
【００４８】
ＦＡＴ１，ＦＡＴ２の領域に続けては、所定サイズのルートディレクトリエントリが配置される。このルートディレクトリエントリには、ルートディレクトリにおけるディレクトリ、ファイルなどについてのディレクトリエントリが格納される。
【００４９】
ルートディレクトリより下位のセクタ領域が、データ領域となる。このデータ領域に対するデータの書き込み／読み出しは、ＦＡＴファイルシステムにより管理される。従って、図示するようにして、ファイルシステムのフォーマット構造としては、１以上の所定数のセクタの連続から成るクラスタ単位によりデータ領域を管理することになる。上記もしたように、ＦＡＴ領域は、原則として、このデータ領域を形成する全クラスタに対応するＦＡＴエントリを有して形成されるものとなる。
【００５０】
続いては図３の右側に示されるＦＡＴ３２に対応するフォーマット構造について説明する。
ＦＡＴ３２対応のフォーマット構造としても、LBA=0で表される先頭セクタにＭＢＲを配置している。そして、このＭＢＲに続けて配置する所定セクタ数の空き領域に続けて、パーティション単位の領域を配置していくようにされる。
【００５１】
ＦＡＴ３２対応のフォーマット構造のパーティション領域にけるシステム領域としては、ＢＰＢに続けてＦＳｉｎｆｏの領域を設けることとしている。
ＦＳｉｎｆｏは、該当パーティションにおける空き容量を計算するのに利用する所定の情報を格納する領域である。ＦＡＴ１，ＦＡＴ２のＦＡＴ領域は、ＦＳｉｎｆｏに続けて順次配置される。
【００５２】
ＦＡＴ３２のフォーマットの場合のＦＡＴ領域も、クラスタと１対１で対応するＦＡＴエントリがクラスタ番号順に配列されて形成され、ＦＡＴエントリには、ディレクトリ、ファイルの記憶結果に応じて、該当クラスタについての所定の情報が格納される。ただし、ＦＡＴ３２のフォーマットでは、クラスタ番号を４バイト（３２ビット）で表現することから、ＦＡＴエントリの個々のサイズも４バイトで区切られることになる。
【００５３】
また、ＦＡＴ３２のフォーマット構造では、ＦＡＴ１６のフォーマット構造においてシステム領域内に設けられていたルートディレクトリエントリの領域が省略されている。
ＦＡＴ３２のフォーマット構造では、ルートディレクトリはデータ領域内におかれることなっている。データ領域におけるルートディレクトリの開始クラスタ番号は、ＢＰＢにおける所定領域（RootClus）に格納される値により示されており、ルートディレクトリにアクセスするときには、上記RootClusを参照して認識したクラスタ番号にアクセスするようにされる。RootClusが示すルートディレクトリの開始クラスタ番号は、通常、２である。
【００５４】
データ領域は、この場合においても、ＦＡＴ３２のファイルシステムによりクラスタ単位でデータの書き込み／読み出しが管理される領域となる。
【００５５】
図５に、ＦＡＴのファイルシステムにおいて規定されるディレクトリエントリの構造を示す。なお、ここでは、ＦＡＴ３２に対応するディレクトリエントリの構造を示している。
この場合、ディレクトリエントリは３２バイトとされている。この図においては、上位バイトから下位バイトまでの各バイト位置を、0h〜1Fhまでの値により示している。
ディレクトリエントリを形成する３２バイトにおいて、最上位のバイト位置0hからバイト位置7hまでの８バイトの領域は、現ディレクトリエントリが示す現ファイル又は現ディレクトリの名称を格納する。
続く下位のバイト位置8hからバイト位置Ahまでの３バイトの領域は、現ファイルのファイル形式に応じた拡張子が格納される。
【００５６】
続く下位のバイト位置Bhには、現ファイル／現ディレクトリについての属性を示す値が格納される。
バイト位置Chは、ここでは予約領域とされている。
バイト位置Dh〜Fhまでの３バイトの領域は、現ファイル／現ディレクトリの作成時刻を示す値を格納する。
バイト位置10h−11hによる２バイトの領域は、現ファイル／現ディレクトリの作成日付を示す値を格納する。
バイト位置12h−13hによる２バイトの領域は、現ファイル／現ディレクトリに対するアクセスが最後に行われた日（最終アクセス日付）を示す値を格納する。
【００５７】
また、バイト位置14h−15hによる２バイト領域とバイト位置1Ah−1Bhによる２バイト領域との計４バイトの領域によっては、現ファイル／現ディレクトリが記憶されるメディア上の先頭位置をクラスタ番号により示すようにされる。つまり、この計４バイトの領域には現ファイル／現ディレクトリについての先頭クラスタ番号の値が格納される。バイト位置14h−15hによる２バイト領域に対しては、先頭クラスタ番号についての上位４バイトの値を格納する。バイト位置1Ah−1Bhによる２バイト領域に対しては、先頭クラスタ番号についての下位４バイトの値を格納する。
【００５８】
バイト位置16h−17hによる２バイト領域は、現ファイル／現ディレクトリについての記録（最後の更新）が実行された時刻（記録時刻）を示す値を格納する。
バイト位置18h−19hによる２バイト領域は、現ファイル／現ディレクトリについての記録（最後の更新）が実行された日付（記録日付）を示す値を格納する。
バイト位置1Ch〜1Fhまでの４バイトの領域は、現ファイル／現ディレクトリについてのサイズ（容量）を示す値を格納する。
【００５９】
図６は、ＦＡＴファイルシステムによるファイル管理例を示している。なお、この図においては、ＦＡＴ３２に従ってフォーマットされた場合を示している。
ここでは、データ領域において、少なくともファイルＡ、ファイルＢ、ファイルＣ、ファイルＤが記憶されているものとしたうえで、ファイルＡ，Ｂ，Ｃ，Ｄのディレクトリエントリを、それぞれ図６（ａ）（ｂ）（ｃ）（ｄ）に示す。なお、この図における説明としては、ディレクトリエントリにおける先頭クラスタ番号(バイト位置14h-15h/1Ah-1Bh)
の情報が主要であることから、他の領域の情報については省略している箇所がある。
【００６０】
また、図６（ｅ）は、ＦＡＴ領域の一部を示すもので、ファイルＡ，Ｂ，Ｃ，Ｄの記憶結果に対応するＦＡＴエントリの内容を有している。なお、この図６（ｅ）においては、図示が簡略でわかりやすくなることを考慮して、ほぼファイルＡ，Ｂ，Ｃ，Ｄのみに対応したＦＡＴエントリ内容のみを抜き出したものとなっている。なお、前述もしたように、ＦＡＴ３２では、個々のＦＡＴエントリは３２ビットのサイズを有する。
また、この図６（ｅ）に示すＦＡＴ領域におけるＦＡＴエントリは、00000000h、00000010h、00000020h、00000030h・・・として示されるように、ＦＡＴエントリに対応するクラスタ番号の値が１桁ごとにインクリメントされる行と、各行が示すクラスタ番号の値に対して足し合わせる最下位桁の値である、＋00h〜＋0Fhが示される列とのマトリクスにより配列されている。例えば、00000000hの行と＋07hの列が交差する位置のＦＡＴエントリは、クラスタ番号00000007hに対応する。
【００６１】
ＦＡＴファイルシステムにおいては、クラスタ番号00000000h、00000001hで表される先頭クラスタとこれに続く２番目のクラスタの２クラスタは予約領域（RSV）となる。これに応じて、クラスタ番号00000000h、00000001hに対応する各ＦＡＴエントリも予約領域として規定されている。
そして、上記ＦＡＴエントリに格納する値として、現クラスタの次にチェインするクラスタ番号は、00000002h〜0FFFFFF6hで表すこととしている。また、EOF（該当クラスタを含むファイルにおける最終クラスタ（ファイルの終端クラスタ））については、EOF＝0FFFFFFFhにより表すこととしている。また、図６（ｅ）においては、未使用クラスタであることを「−」で示しているが、例えば実際には00000000hの値により表すこととしている。
【００６２】
ファイルＡにアクセスするためには、先ず、図６（ａ）に示すファイルＡのディレクトリエントリにアクセスすることになるが、このファイルＡのディレクトリエントリそのものに対するアクセスは例えば次のようにして行われる。
ファイルアクセスのコマンドが絶対パスによるものである場合を例に挙げると、ファイルＡのディレクトリエントリに対するアクセスのためには、先ず、ルートディレクトリにアクセスし、ここからツリー型ディレクトリ構造（階層構造）の下でのパスに従ってディレクトリエントリをたどっていくことになる。
また、ディレクトリエントリを辿っていく過程において、或るカレントディレクトリのサブディレクトリを辿ることになる場合があるが、周知のようにして、親ディレクトリと子ディレクトリの親子関係についても、ディレクトリエントリにより表現される。
このためには、例えば親ディレクトリ側のディレクトリエントリとして、子ディレクトリが存在することを示す情報を名称の領域に格納し、子ディレクトリのディレクトリエントリが存在する先頭クラスタ番号を格納したものを設けるようにされる。また、子ディレクトリのディレクトリエントリとして、親ディレクトリが存在することを示す情報を名称の領域に格納するとともに、親ディレクトリのディレクトリエントリが存在する先頭クラスタ番号を格納するものを設けるようにされる。これにより、親から子、及び子から親の両方向に対してディレクトリを辿っていくことができる。つまり、ディレクトリエントリは、その情報内容と、記録される領域とによって、ディレクトリ、ファイルなどの階層構造を形成する要素（階層要素）の階層関係（パス）を管理する情報（階層関係指示情報）であるということにもなる。
そして、上記のようにしてパスに従ってディレクトリエントリをたどる結果、アクセス先として、最終的にはファイルＡのディレクトリエントリに到達することになる。
【００６３】
ファイルＡのディレクトリエントリへのアクセスが行われると、続いては、このファイルＡのディレクトリエントリを起点として、ファイルＡそのものへのアクセスが行われることになる。
ファイルＡそのものへのアクセスとしては、概念的には次のようなものとなる。
ファイルＡにアクセスするためには、ファイルＡのディレクトリエントリにおける先頭（開始）クラスタ番号を取得する。この先頭クラスタ番号は、データ領域においてファイルＡのデータが記憶される開始クラスタ番号を示しており、この場合には、図６（ａ）に示すようにして00000007hとなっている。つまり、この段階で、ファイルＡの開始クラスタ番号が00000007hであることが認識される。
そこで、ファイルシステムは、図６（ｅ）に示すＦＡＴ領域において、クラスタ番号00000007hに対応するＦＡＴエントリにアクセスして、このＦＡＴエントリに格納される値を参照する。この場合、クラスタ番号00000007hに対応するＦＡＴエントリには、00000008hを格納している。これにより、ファイルシステムは、ファイルＡのデータは、クラスタ番号00000007hのクラスタのデータに続けて、クラスタ番号00000008hのクラスタのデータが連結されていることを認識する。そこで、次にクラスタ番号00000008hに対応するＦＡＴエントリにアクセスして参照すると、ここには、00000009hが格納されているので、ファイルＡのデータは、さらにクラスタ番号00000008hのクラスタのデータに続けて、クラスタ番号00000009hのクラスタのデータを連結することが認識される。そこでまた、クラスタ番号00000009hのＦＡＴエントリを参照すると、ここにはEOFを示す値が格納されているので、ファイルＡは、クラスタ番号00000009hのクラスタが終端であることが認識される。
このことから、ファイルＡは、図６（ｆ）のクラスタチェインに示すようにして、クラスタ番号00000007h-00000008h-00000009hの順によるクラスタのデータの連結により形成されることが認識されることになる。ファイルシステムは、クラスタ番号00000007h-00000008h-00000009hのクラスタにアクセスしていくようにされ、これにより、ファイルＡに対するアクセスが行われることになる。
【００６４】
上記説明から分かるように、データ領域に記憶されるファイルのデータの位置は、ディレクトリエントリに格納される先頭クラスタ番号と、この先頭クラスタ番号を起点として参照するＦＡＴ領域のＦＡＴエントリの内容によって示されており、これらの情報を参照することで、ファイルへのアクセスが可能となっている。
また、データ領域に記憶されるファイルについての、ツリー型ディレクトリ構造による管理は、ディレクトリエントリにより表現されているものであることも分かる。
【００６５】
そして、残るファイルＢ，Ｃ，Ｄの記憶位置については、上記ディレクトリエントリ及びＦＡＴ領域から成るファイル管理情報により、次のようにして管理されている。
先ず、ファイルＢについては、図６（ｂ）のディレクトリエントリに示すようにして、ファイルの先頭（開始）クラスタのクラスタ番号が0000000Ahであることが示されている。そこで、図６（ｅ）に示すＦＡＴ領域のクラスタ番号0000000Ahに対応するＦＡＴエントリを参照すると、次のクラスタを示すチェイン情報としてクラスタ番号0000001Fhが示されている。そこで、さらにＦＡＴエントリを辿って、クラスタ番号0000001Fhに対応するＦＡＴエントリを参照すると、チェイン情報としてクラスタ番号00000025hが格納されている。クラスタ番号00000025hに対応するＦＡＴエントリには、クラスタ番号00000031hが格納されている。クラスタ番号00000031hに対応するＦＡＴエントリにはクラスタ番号00000030hが格納されている。クラスタ番号00000030hに対応するＦＡＴエントリにはEOFであることを示す値が格納されている。
このようにして、ファイルＢは、ディレクトリエントリ及びＦＡＴ領域により、図６（ｇ）に示すようにして、クラスタ番号0000000Ah-0000001Fh-00000025h-00000031h-00000030hの順に従ったクラスタに記憶されるデータの連結により形成されることが表現される。
【００６６】
また、ファイルＣについては、図６（ｃ）に示すようにして、先ず、ファイルＣのディレクトリエントリにおいて、ファイルの先頭（開始）クラスタとしてクラスタ番号0000001Bhが示されている。このことに基づき、図６（ｅ）に示すＦＡＴ領域におけるクラスタ番号0000001BのＦＡＴエントリを起点として参照した内容によっては、ファイルＣは、図６（ｈ）に示すように、クラスタ番号0000001Bh-00000011h-00000012h-00000013h-00000014h-00000003hの順に従ったクラスタに記憶されるデータの連結により形成される。
【００６７】
ファイルＤについては、図６（ｄ）に示すファイルＤのディレクトリエントリにおいて、ファイルの先頭（開始）クラスタとしてクラスタ番号0000002Chが示されている。これに基づいて、図６（ｅ）に示すＦＡＴ領域におけるクラスタ番号0000002CのＦＡＴエントリを起点として参照した内容としては、ファイルＤは、図６（ｉ）に示すように、クラスタ番号0000002Ch-0000002Dh-0000002Eh-0000002Fh-00000038h-00000039h-0000003Ah-0000003Bhの順に従ったクラスタに記憶されるデータの連結により形成される。
【００６８】
これまでに説明したＦＡＴファイルシステムのフォーマット内容をふまえて、先ず、本発明に至った事情について、図７を参照して説明しておく。
図７（ａ）は、静止画ファイルを記録したメディアについてのファイル管理内容例を、ディレクトリ構造により示している。この図に示すファイル管理内容は、静止画ファイルを記録したメディアに対応するファイル管理情報の内容を反映したものとなっている。なお、ファイル管理情報は、ファイルシステム１０１としての処理により、管理対象のファイルが記録されるメディアの所定領域に記憶されるもので、ＦＡＴファイルシステムであれば、周知のようにして、例えばディレクトリエントリとＦＡＴ領域のテーブル情報とから成る。
また、この図７に示されるメディアを対象として記録を行ったデジタルスチルカメラとしては、画像フォーマットとしてDCF(Design rule of Camera File system)に対応しているものとされる。周知のようにして、DCFは、JEIDA(Japanese Electronic Industry Association)が制定したデジタルスチルカメラ用の画像フォーマットであり、例えば撮像画像データ（静止画ファイル）を記録するメディアのディレクトリ構造や記録様式などを定義している。これにより、異なる機種間での互換性が保証される。
ＦＡＴファイルシステム下でのファイル名／ディレクトリ名の付与についても、DCFが規定する様式に従うものとされている。これに対応して、図７に示されるディレクトリ構造を形成するファイル、ディレクトリについても、DCFの規定に従って名称が付与されている。
【００６９】
図７（ａ）に示されるディレクトリ構造では、先ず、Rootディレクトリに対して直下の層に位置するサブディレクトリとして、１つのディレクトリ「DCIM」が置かれる。
［DCIM］のディレクトリ名は、静止画ファイルを格納するディレクトリであることの意味を持つ。このディレクトリ[DCIM]の直下（子）となるサブディレクトリには、ディレクトリ[101MSDCF]、[102MSDCF]、[104MSDCF]、［105MSDCF］の４つのディレクトリが配置される。  そして、これら５つのディレクトリのそれぞれにおいて、拡張子「.JPG」の静止画ファイルが格納されている。
【００７０】
ここで、図７の場合における、DCFの規定に従ったファイル名、ディレクトリ名の設定規則について、図８により説明しておく。
先ず、ディレクトリ［DCIM]の子ディレクトリについては、図８（ａ）に示すようにして、DCFの様式規則として、計８文字の文字列であることとしたうえで、上位３文字についてはディレクトリ番号を設定し、下位の５文字については任意の文字列を設定することとしている。上位３文字のディレクトリ番号については文字として数字を使用し、下位５文字の任意の文字列については英数字を使用することとされている。なお、ディレクトリ番号としては、100〜999までの範囲での番号を使用できることになっており、000〜099の番号は原則として使用できないものとされている。
【００７１】
図８（ｃ）に示すように、数字としては0〜9を使用できることが規定されている。また、英数字としては、0〜9の数字と、A〜Zまでの大文字のアルファベットと、[_]と表記されるアンダーバーといわれる記号を使用できることが規定されている。アルファベットの小文字は現状において使用が許可されていない。
【００７２】
上記DCFによる規定の下で、この場合には、ディレクトリ［DCIM]に対して子となるディレクトリ名について、下位５文字の任意の文字列としては[MSDCF]を固定的に格納することとしている。そのうえで、上位３文字のディレクトリ番号については、100〜999までの範囲で、ディレクトリごとに異なる値を設定するようにされる。
このようにしてディレクトリ名が付与されることで、ディレクトリ［DCIM]の子ディレクトリについては、下位５文字の[MSDCF]が共通となる。この場合において[MSDCF]の共通文字は、［DCIM]の子ディレクトリであり、また、静止画ファイルを格納するディレクトリであることを示すようにされる。そのうえで、上位３文字のディレクトリ番号が割り振られることにより、ディレクトリ間で名称が重複しないようにされている。
【００７３】
また、DCFが規定するファイルの名称としては、図８（ｂ）に示すようにして、まず、ファイル名称全体としては８文字により形成される（拡張子は除く）ものとしたうえで、上位５文字には、英数字による任意の文字列を設定し、下位４文字については、数字を使用して0001〜9999の範囲でファイル番号を設定することとされている。
そのうえで、この場合には、ファイル名称の上位５文字については[DSC0]の４文字を固定して設定し、下位４文字のファイル番号については、0001〜9999の範囲で、同じディレクトリの階層に位置するファイルごとに異なる値を設定するようにされる。
これにより、ファイル名称についても、ファイル間で共通となる上位４文字の[DSC0]により静止画ファイルであることを示したうえで、下位４文字のファイル番号を割り振るにより、同じディレクトリの階層において、ファイル間での名称が重複しないようにされることになる。
【００７４】
図７（ａ）に説明を戻す。
図７（ａ）に示す構造では、ディレクトリ［DCIM]に対して子（サブ）となるディレクトリ[101MSDCF]、[102MSDCF]、[104MSDCF]、［105MSDCF］が存在しており、上記もしたように写真画像としての静止画ファイルを格納するディレクトリとされる。
ディレクトリ[101MSDCF]は、最小ファイル番号として[0001]が付与されたファイル[DSC00001.JPG]から、最大ファイル番号として[0100]が付与されたファイル[DSC00100.JPG]までの１００のファイルを格納しているものとされる。この場合、最小ファイル番号[0001]から最大ファイル番号[0100]までの数値範囲と、格納ファイル数とは、ともに１００で一致している。従って、この場合はディレクトリ[101MSDCF]に格納される１００のファイルについては、[0001]〜[0100]までのファイル番号に欠損がなく連続したファイル番号が付されている。
【００７５】
また、ディレクトリ[102MSDCF]は、最小ファイル番号のファイル[DSC00005.JPG]と、最大ファイル番号のファイル[DSC00199.JPG]とを含み、全部で１９０のファイルを格納しているものとされる。最小ファイル番号［0005]から最大ファイル番号［0199]までが連続しているとすれば１９５のファイルがあることになるが、格納ファイル数＝１９０であり、１９５に対して５不足する。つまり、最小ファイル番号［0005]から最大ファイル番号［0199]までの１９５個のファイル番号のうちで、例えばファイル削除が行われたなどの理由により、５つのファイル番号がディレクトリ[102MSDCF]にて使用されていない状態となっている。
【００７６】
また、ディレクトリ[104MSDCF]は、最小ファイル番号のファイル[DSC00001.JPG]と、最大ファイル番号のファイル[DSC00222.JPG]を含み、全部で２００のファイルを格納しているものとされる。この場合にも、最小ファイル番号［0001]から最大ファイル番号［0222]までの数値範囲が２２２であるのに対して格納ファイル数＝２００とされていることで、最小ファイル番号［0001]から最大ファイル番号［0222]まで２２２個のファイル番号のうちで、２２個のファイル番号がディレクトリ[104MSDCF]にて使用されていない状態となっている。
【００７７】
また、ディレクトリ[105MSDCF]は、最小ファイル番号のファイル[DSC00101.JPG]と、最大ファイル番号のファイル[DSC00250.JPG]を含み、全部で１５０のファイルを格納しているものとされる。この場合には、最小ファイル番号［0101]から最大ファイル番号［0250]までの数値範囲が１５０となり、格納ファイル数＝１５０となっている。従って、ディレクトリ[105MSDCF]に格納されている１５０のファイルとしては、ファイル名称におけるファイル番号として、最小ファイル番号［0101]から最大ファイル番号［0250]までの連番が割り振られていることになる。
【００７８】
ところで、デジタルスチルカメラでは、撮影時における操作負担や煩わしさからユーザを解放するために、撮像画像の記録にあたってのファイル名は、ユーザの文字入力操作により設定するのではなく、自動的に設定するように構成されることが一般的である。このようなファイル名の設定例について、図７（ｂ）を参照して概略的に説明する。
【００７９】
図７（ｂ）においては、先ず、図７（ａ）に示したメディアの記録内容の状態から、ディレクトリ[101MSDCF]に対して１つのファイルを新規に記録した状態が示されている。
図７（ａ）に示した段階においてディレクトリ[101MSDCF]が格納するファイルとしては、先に説明したように、最小ファイル番号[0001]から最大ファイル番号[0100]までにおいて、ファイル番号に欠損がないようにして１００のファイルが記録されている。そこで、この場合においては、これら１００のファイルの何れとも重複しないファイル名称を設定するために、これまでの最大ファイル番号より大きなファイル番号を設定することになる。ここでは、現在までの最大ファイル番号を１つインクリメントしたファイル番号[0101]を設定するものとする。つまり、ファイル名全体としては、[DSC00101.JPG]とする。そして、このファイル名が設定されることで、最大ファイル番号も[0101]であることになる。また、格納ファイル数としては１０１になる。
【００８０】
また、例えば、同じ図７（ｂ）に示されるディレクトリ[102MSDCF]に対して新規ファイルを１つ記録したとする。
図７（ａ）に示す新規ファイル記録前の段階では、ディレクトリ[102MSDCF]は、最小ファイル番号を持つファイル[DSC00005.JPG]と、最大ファイル番号を持つファイル[DSC00199.JPG]を含み、１９０のファイルを格納している。つまり、最小ファイル番号[0005]〜最大ファイル番号[0199]までのうちで、或るファイル番号に対応する５つのファイルは存在していない状態にある。
【００８１】
このようなファイルの格納状態の場合におけるファイル名設定として、１つには、上記と同様に、最大ファイル番号より大きなファイル番号として、例えば最大ファイル番号を１インクリメントしたファイル番号を設定することが考えられる。この場合には、最大ファイル番号以内における未使用のファイル番号については、そのまま未使用の状態としておくことになる。
図７（ｂ）には、このようにして新規ファイルについてファイル名を設定した場合を示している。つまり、新規ファイルを記録する以前においては、最大ファイル番号が[0199]であったので、新規ファイルについては、この［0199]を１インクリメントしたファイル番号[0200]を設定し、ファイル名全体としては、[DSC00200.JPG]を設定する。この結果、格納ファイル数としては１９１となり、最大ファイル番号としては[0201]となる。
【００８２】
あるいは、図７（ｂ）のディレクトリ[102MSDCF]のようなファイル格納状態では、最大ファイル番号までにおいて未使用となっているファイル番号のうちから１つのファイル番号を所定規則に従って選択するようにしてファイル名を設定する手順とすることも考えられる。
【００８３】
このようにして、新規ファイルについてのファイル名を設定するのにあたっては、最大ファイル番号を１インクリメントしたファイル番号を設定する手順、あるいは、最大ファイル番号以下のファイル番号のうちから未使用のファイル番号を選択する手順とすれば、同じ階層位置にて既に記録されているファイルとの間でファイル名の重複が生じることはない。
しかしながら、上記のようにして新規ファイルのファイル名を設定するためには、新規ファイルの記録先となるディレクトリ（階層位置）において記録済みとなっているファイルから最大ファイル番号を有するファイルを特定する、あるいは、最大ファイル番号以内のファイル番号のうちで未使用となっているファイル番号を特定する必要があることになる。
ただし、図３〜図６による説明からも理解されるように、ＦＡＴファイルシステムにおいては、直接的に、ディレクトリごとの最大ファイル番号、あるいは最大ファイル番号以内での未使用のファイル番号を管理する情報構造を有していない。そこで、従来において、最大ファイル番号、あるいは未使用のファイル番号を特定するための手順としては次のようになる。
【００８４】
ここでは、図７におけるディレクトリ[102MSDCF]に新規ファイルを格納するようにして記録する場合を例に挙げる。この新規ファイルに対応する最大ファイル番号又は未使用のファイル番号を特定するためには、この新規ファイルが記録される階層にまで、ディレクトリエントリを辿ることになる。
ここでは説明を分かりやすいものとするために、絶対パスによりディレクトリエントリを辿っていく場合について説明する。
この場合には、先ず、ルートディレクトリに対してアクセスする。ルートディレクトリは、ＦＡＴ１６であればＦＡＴ領域に続くルートディレクトリエントリの領域であり、ＦＡＴ３２であれば、ＢＰＢのRootClusが示すデータ領域内の所定領域となる。このルートディレクトリには、ルートディレクトリエントリとして、ディレクトリ[DCIM]を指し示すディレクトエントリが存在する。このディレクトリエントリは、例えば名称としてDCIMを格納している。このディレクトリエントリが示す先頭クラスタ番号は、ディレクトリ[DCIM]に格納されるディレクトリ、ファイルのディレクトリエントリを格納する領域（ディレクトリエントリ格納領域）の先頭クラスタを示す。なお、ディレクトリエントリ格納領域が２以上のクラスタチェインにより形成される場合には、そのクラスタチェインはＦＡＴ領域により示されている。
ファイルシステムがこのディレクトリエントリ格納領域にアクセスすると、ここにはディレクトリ[nnnMSDCF]に対応するディレクトリエントリが格納されていることになる。これらのディレクトリエントリには、対応するディレクトリ名を名称として格納している。図７の場合には、ディレクトリに対応するディレクトリエントリとして、ディレクトリ[101MSDCF]、[102MSDCF]、[104MSDCF]、[105MSDCF]ごとに対応する４つのディレクトリエントリが格納されていることになる。ファイルシステムとしては、この領域に格納されるディレクトリエントリの名称を検索していくことで、目的とするディレクトリ[102MSDCF]のディレクトリエントリに到達できる。
【００８５】
ディレクトリ[102MSDCF]のディレクトリエントリの先頭クラスタ番号は、ディレクトリ[102MSDCF]に格納されるファイルのディレクトリエントリを格納するディレクトリエントリ格納領域の先頭クラスタを示している。そこで、このディレクトリエントリ格納領域にアクセスすると、ここには、最小ファイル番号のファイル［DSC00005.JPG]と、最大ファイル番号のファイル［DSC00199.JPG]を含む、１９０のファイルごとに対応したディレクトリエントリを格納しているいることになる。
続いては、これら１９０のディレクトリエントリに格納される名称を、１つずつ順次参照していくことで、これらのファイルに与えられたファイル番号を認識していく。この認識結果により、現段階における最大ファイル番号、若しくは最大ファイル番号以下における未使用のファイル番号を特定することが可能になる。
ちなみに、新規ファイルの記録に応じて、この新規ファイルのディレクトリエントリが作成され、ディレクトリ[102MSDCF]に格納されるファイルのためのディレクトリエントリ格納領域に格納するようにして追加記録される。そして、この新規ファイルのディレクトリエントリの名称としては、上記のようにして特定した最大ファイル番号若しくは未使用のファイル番号に基づいて設定されたファイル名称を格納していることになる。
【００８６】
上記のようにして、新規ファイルのファイル名の設定にあたっては、最大ファイル番号若しくは未使用のファイル番号を特定するために、新規ファイルの格納先に対応するディレクトリエントリ格納領域にまでアクセスして、さらに、ここに格納されているディレクトリエントリを順次スキャンするようにして参照していく処理が必要になる。この処理は、ディレクトリエントリ数（つまり格納ファイル数）が増加するのに応じて長時間化する。従って、或る数以上のファイル数を格納している状態では、新規ファイルのファイル名設定の処理が長時間化し、ファイル記録処理の性能に影響を与える可能性がでてくる。
【００８７】
このための対策として、ＦＡＴファイルシステムに対応するファイル管理情報（ディレクトリエントリＦＡＴ領域）とは別に、最大ファイル番号、若しくは、未使用ファイル番号の情報をディレクトリごとに対応して保持させたテーブル情報を設けて、メディアに記憶保持させておくようにすることが考えられる。この構成であれば、新規ファイルのファイル名設定時においては、テーブル情報にアクセスすれば、格納先ディレクトリにおけるディレクトリエントリを順次参照しなくとも、最大ファイル番号又は未使用のファイル番号を認識できることになり、この点で処理時間を削減可能になる。
しかしながら、この場合には、ファイルシステムによる通常のファイル管理情報（ディレクトリエントリＦＡＴ領域）に加えて、テーブル情報も、ファイル記録、削除などの処理結果に応じてメンテナンスする必要が生じるので、その分、管理情報メンテナンスについての処理負担が増加してしまう。
また、例えばファイル名設定時や、ファイル管理情報のメンテナンス時においては、このテーブル情報にアクセスすることが必要になる。たとえ、ディレクトリエントリを順次参照する処理が省略されたとしても、アクセスに相応の時間を要することになれば、これによる処理時間の遅延が生じることになる。
テーブル情報を記憶させるとすれば、例えばデータ領域内のしかるべき領域とすることになるが、このテーブル情報の記録領域は、例えばＦＡＴ領域やディレクトリエントリの記憶領域に対して例えばクラスタ番号的に離れた位置となり得る。従って、例えば特に、ＨＤＤや光学ディスク状記録媒体などのアクセスにシーク動作（ヘッドと信号記録面との相対移動）を伴うようなメディアの場合には、テーブル情報にアクセスするためのシーク時間が余分に必要となって、上記したアクセス時間の問題はより顕在化してくる。
【００８８】
また、例えば特許文献１に記載されているようにして、ファイル記録のときの日付、時刻に基づいてファイル名称を作成することとすれば、ディレクトリエントリを順次参照する必要はなく、また、テーブル情報を作成する必要もない。
ただし、図７に示したファイル管理内容は、DCFに対応するデジタルスチルカメラなどの機器によってメディアに記録されたものであり、従ってファイル名、ディレクトリ名としても、DCFの規定の下で設定されているものであると先に述べた。
機器がDCFに対応することの利点は、先にも述べたようにして、異なる機器間での互換性が保証されることにある。DCFの規定に従ってファイル名、ディレクトリ名を設定することも、上記互換性を保つための要件である。
しかしながら、特許文献１では、日付、時刻に基づいてファイル名を設定することから、具体的には、ファイル名としての番号は、年月日、時刻に対応する数字の文字列を使用することになる。この場合、ファイル番号として必要な文字数が比較的多くなるなどの理由で、DCFの規定に従ったファイル名を設定することが難しい。つまり、特許文献１の技術に関しては、DCFなどの所定規格に対応させるという制限がある場合に、その規格に対応できなくなる可能性がある。
【００８９】
そこで、本実施の形態としては、ＦＡＴファイルシステムによるファイル管理と、DCFに対応したファイル名（及びディレクトリ名）により管理することを前提としたうえで、新規ファイルについてファイル名を自動設定することに関して、これまでよりも効率的に行われるようにされる。以降、本実施の形態としてのファイル名設定に関する構成について説明していく。
なお、以降の説明にあたっては、本実施の形態のデジタルスチルカメラ１としても、図７に示した基本ディレクトリ構造、及びファイル名／ディレクトリ名の設定規則によりファイル記録を行っていくものとされる。つまり、メディアのディレクトリ構造の基本としては、rootの子ディレクトリとしてディレクトリ[DCIM]を置き、このディレクトリ[DCIM]の子ディレクトリとして、[nnnMSDCF]（nnnは３文字のディレクトリ番号）のディレクトリ名による静止画ファイル格納用のディレクトリを置くようにされる。そして、ディレクトリ[nnnMSDCF]ごとに、撮像画像としての静止画ファイルを格納する。これら静止画ファイルのファイル名は、［DSC0mmmm］（mmmmは４文字によるファイル番号）となる。
【００９０】
先ず、本実施の形態では、静止画ファイル格納用のディレクトリ[nnnMSDCF]に対応するディレクトリエントリについては、図９に示すようにして定義することとしている。
つまり、本来は拡張子を格納する領域であるバイト位置8h〜Ahまでの３バイトの領域におけるバイト位置8h−9hによる上位２バイト（１６ビット)の領域については、格納ファイル数を示す値を格納する領域とする。ここでいう格納ファイル数とは、現ディレクトリエントリが対応するディレクトリ（フォルダ）内に格納しているファイル数を示す。
また、本来は拡張子を格納する領域であるバイト位置8h〜Ahの領域のうち、最下位バイトであるバイト位置Ahの領域と、予約領域であるバイト位置Chの領域とを連結した２バイト（１６ビット）の領域については、最大ファイル番号を示す値を格納する領域とする。ここでの最大ファイル番号は、現ディレクトリエントリが対応するディレクトリ（フォルダ）内に格納している全ファイルのファイル名に使用されているファイル番号のうちで、最大値となるファイル番号のことをいう。
確認のために述べておくと、拡張子は、ファイル種別を識別するためにファイル名の一部として使用されるものであり、ディレクトリ名（フォルダ名）については拡張子は使用しない。このために、ディレクトリに対応するディレクトリエントリについては、拡張子の領域（バイト位置8h〜Ah）は使用されていない。このことに基づいて、本実施の形態では、本来、拡張子のための領域及び予約領域として定義されている領域について、上記のようにして、新たに、格納ファイル数と最大ファイル番号のための領域として定義している。従って、格納ファイル数と最大ファイル番号の領域を設けたことによりディレクトリエントリの本来の機能が失われることはなく、ＦＡＴファイルシステムによるファイル管理に支障は来さない。
【００９１】
なお、ディレクトリエントリにおける格納ファイル数及び最大ファイル番号のための領域設定としては、この図に示した構造に限定されるべきものではない。例えば、周知のようにして、４バイト（３２ビット）から成る先頭クラスタ番号の領域（バイト位置12h−13h、1Ah−1Bh）において有効に使用されているは下位２８ビットであり、上位４ビットは使用されていない。そこで、この先頭クラスタ番号の領域の上位４ビット（バイト位置12hの上位４ビット）を使用したうえで、格納ファイル数又は最大ファイル番号のための領域を定義することも考えられる。
【００９２】
図１０は、本実施の形態のデジタルスチルカメラ１において、静止画ファイルとしてのデータをメディアに対して記録する前段階において実行される準備処理を示すフローチャートである。なお、この図に示す処理は、例えばＣＰＵ１０が、ＲＯＭ１１（あるいはメディア）にインストールされるようにして記憶されるＯＳ(Operating System)や所定のアプリケーション１００などのプログラムを実行することで実現されるもので、メディアに対するデータ処理などのメディア制御に関しては、図２に示したＦＡＴファイルシステム階層構造の下での処理となる。この点については、以降において説明するフローチャートとしての図に関しても同様である。また、この図においては、ファイルシステム１００とファイルシステム１０１の各処理階層が連携して実行する処理として示している。
【００９３】
新規に生成された静止画ファイルのデータをメディアに記録すべきこととなった場合には、例えば静止画ファイル記録機能を有するアプリケーション１００による処理として、先ず、ステップＳ１０１に示すようにして、今回のメディアへの記録対象となったファイル（記録対象ファイル）についての記録先ディレクトリを決定する。記録先ディレクトリとは、メディアに記録した記録対象ファイルをＦＡＴファイルシステムにより管理する場合において、この記録対象ファイルを格納するディレクトリ（フォルダ）をいう。図７との対応では、ディレクトリ[DCIM]の子となる、静止画ファイル格納用のディレクトリ[nnnMSDCF]となる。
また、次のステップＳ１０２においては、記録対象ファイルの形式に応じて、記録対象ファイルについての拡張子を決定する。
このようにして、記録対象ファイルの記録先ディレクトリと拡張子とを決定したうえで、アプリケーション１００は、ステップＳ１０３の処理として、ファイルシステム１０１に対して、この記録対象ファイルに対応させるべきファイル番号の問い合わせを行う。このときには、ファイル番号問い合わせのコマンドとともに、ステップＳ１０１にて決定した記録先ディレクトリを、絶対パス、又は現在のカレントディレクトリを基準とした相対パスにより通知する。
【００９４】
ステップＳ１０３によるファイル番号の問い合わせを受けたファイルシステム１０１では、ステップＳ２０１としての処理により、記録対象ファイルに対応させるべきファイル番号である新規ファイル番号を決定する。そして、この決定された新規ファイル番号をアプリケーション１００に対して返送する。なお、このステップＳ２０１の処理については後述する。
【００９５】
ファイルシステム１０１から返送された新規ファイル番号を受け取ったアプリケーション１００では、ステップＳ１０４の処理を実行する。つまり、受け取った新規ファイル番号に基づいて、ファイル名におけるファイル番号部分の文字列を生成する。ここでのファイル番号部分の文字列とは、拡張子以外の８文字の文字列によるファイル名称のうちで、下位４文字によるファイル番号のための文字列部分を指す。
次のステップＳ１０５では、ファイル名の任意文字列部分の内容を、例えば所定のレジスタ空間から読み込んで取得する。ここでのファイル名の任意文字列部分とは、拡張子以外の８文字の文字列によるファイル名称のうちで、上位４文字による文字列部分を指す。本実施の形態では、図７に示したように、ファイル名の任意文字列部分は、［DSC0］として予め定めておくものとされ、アプリケーション１００には、このファイル名の任意文字列部分の内容を示す設定情報を組み込んでおくようにされる。そして、例えば、アプリケーション１００の起動時においては、この設定情報を、所定のレジスタに格納するようにされる。
【００９６】
ステップＳ１０６では、上記ステップＳ１０４により得られたファイル番号部分の文字列と、ステップＳ１０５により得られた任意文字列部分とを組み合わせるようにして、ファイル名における拡張子以外の８文字の文字列による名称部分を生成する。そして、ステップＳ１０７において、この名称部分に対して、先のステップＳ１０２により決定した拡張子を付加するようにして、ファイル名を生成する。
【００９７】
ここまでの処理が終了したとされると、アプリケーション１００は、ステップＳ１０８により、記録対象ファイルをメディアに書き込んで記録するためのwriteモードによるファイルオープンを実行する。このファイルオープンの処理として、アプリケーション１００からファイルシステム１０１に対しては、ステップＳ１０７により決定されたファイル名を、絶対パス又は相対パスにより通知するようにされる。つまり、ファイル名を、その記録先となる階層位置（ディレクトリ）の情報と共に通知する。
【００９８】
ファイルシステム１０１では、上記ステップＳ１０８によるファイルオープンの指示に対する応答として、先ず、ステップＳ２０２の処理により、記録対象ファイルを記録するための先頭クラスタを決定する。このためには、例えばＦＡＴ領域を参照するなどして検索した未使用クラスタ（空きクラスタ）のうちから、所定規則に従って１つのクラスタを選択するようにされる。
【００９９】
また、次のステップＳ２０３により、記録対象ファイルに対応するディレクトリエントリを生成してメディアに対して記録する。このディレクトリエントリを生成するのにあたり、ディレクトリエントリに格納する名称（バイト位置0h〜7h）、拡張子（8h〜Ah）の内容については、ステップＳ２０２にてファイルオープンの指示と共に受け取った、ファイル名の情報を利用する。
また、ディレクトリエントリを記録するディレクトリエントリ格納領域は、ステップＳ２０２にてファイルオープンの指示と共に受け取った、パスに従って決定することになる。
ここまでの処理が終了すると、ファイルシステム１０１は、ファイルオープンに応答したレスポンスとして、ファイルポインタをアプリケーション１００に返送する。なお、ファイルポインタの内容は、例えばステップＳ２０２にて決定した先頭クラスタに基づいて生成することができる。
【０１００】
ファイルポインタの返送を受けたアプリケーション１００は、ステップＳ１０９により、記録対象ファイルのデータを実際にメディアに対して書き込むための処理を開始する。以降実行されるファイルのデータ書き込み処理は、アプリケーション１００が受け取ったファイルポインタに基づいたものとなる。
【０１０１】
この図１０に示す準備処理において、アプリケーション１００側の処理（ステップＳ１０１〜Ｓ１０９）は、特に従来と変わるところはない。本実施の形態では、次に説明するファイルシステム１０１におけるステップＳ２０１としての新規ファイル番号の決定、返送の処理により、ファイル名設定、つまり、ファイル名におけるファイル番号設定が効率的なものとなるようにされているからである。そして、上記のようにして、アプリケーション１００側の準備処理が従来と同様であるということは、アプリケーション１００については、既存のプログラム構成のままでよく、特に変更を加える必要はないということを意味する。本実施の形態では、このような点においても、ファイル名設定について効率的なものとなるように配慮されている。
【０１０２】
図１１のフローチャートは、上記図１０に示したステップＳ２０１としての新規ファイル番号の決定、返送の処理を示している。
この処理としては、先ず、ステップＳ３０１において、アプリケーション１００から通知を受けた記録先ディレクトリが既存のものであるか否かについて判別する。ここでの記録先ディレクトリは、図１０のステップＳ１０１にて決定されて、ステップＳ１０３によるファイル番号問い合わせのコマンドと共に通知されたものである。
ここでは、ステップＳ１０１にて決定した記録先ディレクトリが新規のものである場合には、このこともステップＳ１０３において通知されるようになっているものとされ、ステップＳ３０１としては、この通知内容に基づいて判別結果を得るようにされる。
【０１０３】
そして、ステップＳ１０３において通知された記録先ディレクトリが既存のものではないとして否定の判別結果が得られた場合には、ステップＳ３０２において記録先ディレクトリを新規作成する。つまり、今回の記録対象ファイルを格納するディレクトリ（フォルダ）に対応するディレクトリエントリを生成して、通知されたパスに従った階層位置に有るものとして管理されるようにして、しかるべきディレクトリエントリ格納領域に対して記録する。ステップＳ３０２の処理を実行した後は、ステップＳ３０５の処理に進む。
【０１０４】
これに対して、ステップＳ３０１において肯定の判別結果が得られた場合には、ステップＳ３０３に進む。
ステップＳ３０３においてはディレクトリを検索する。ここでのディレクトリの検索とは、通知されたパスに従って、１階層分のディレクトリを辿るようにして、ディレクトリエントリ格納領域にアクセスすることを指す。そして、ステップＳ３０４にて、通知された記録先ディレクトリに到達したか否かについて判別する。つまり、最後のステップＳ３０３においてアクセスしたディレクトリエントリ格納領域において、通知された記録先ディレクトリに対応するディレクトリエントリが記録されているか否かについて判別する。このためには、通知されたディレクトリ名と一致する名称を格納するディレクトリエントリを検索すればよい。ここで否定の判別結果が得られたのであれば、ステップＳ３０３の処理に戻り、さらにディレクトリを辿るようにして検索を実行する。そして、最終的に、通知された記録先ディレクトリに到達したものとして、ステップＳ３０４にて肯定の判別結果が得られたとされると、ステップＳ３０５の処理に進む。
【０１０５】
ステップＳ３０５に至った段階では、カレントディレクトリとしては、通知された記録先ディレクトリとなっている。そこで、この通知された記録先ディレクトリに対応するディレクトリエントリに格納される最大ファイル番号fmaxを参照する。最大ファイル番号は、図９に示したように、ディレクトリエントリにおけるバイト位置8h−9hの２バイトの領域に格納されている。
次のステップＳ３０６においては、参照した最大ファイル番号fmaxについて、fmax＝9,999であるか否かについて判別する。つまり、現段階での最大ファイル番号が、ファイル番号として使用可能な上限値と等しいか否かについて判別する。
【０１０６】
上記ステップＳ３０６において否定結果が得られた場合には、現在の最大ファイル番号よりも大きなファイル番号が未使用で残っていることになる。そこで、この場合には、ステップＳ３０７〜Ｓ３０９の処理を実行する。
【０１０７】
先ず、ステップＳ３０７においては、最大ファイル番号を更新するための処理を実行する。つまり、記録先ディレクトリに対応するディレクトリエントリに格納している最大ファイル番号fmaxの値（ステップＳ３０５により参照した値である）について、１インクリメント（fmax＝fmax＋１）した値をセットするようにされる。なお、ステップＳ３０２にて新規作成されたディレクトリエントリにおいては最大ファイル番号fmax＝0がセットされており、新規作成後の最初のステップＳ３０７の処理により、最大ファイル番号fmax＝１がセットされることになる。
【０１０８】
続くステップＳ３０８においては、同じ記録先ディレクトリに対応するディレクトリエントリのバイト位置Ah−Chから成る２バイト領域に格納している格納ファイル数fnumについても、１インクリメント（fnum=fnum+1）した値をセットするようにして更新を行う。なお、ステップＳ３０２にて新規作成するディレクトリエントリにおいては、格納ファイル数fnumについても0をセットすることとしており、新規作成後の最初のステップＳ３０８の処理により、格納ファイル数fnum＝１がセットされることになる。
そして、ステップＳ３０９において、ステップＳ３０７にて更新された最大ファイル番号fmaxの値を、新規ファイル番号としてアプリケーション１００に返送する。
【０１０９】
また、ステップＳ３０６において、肯定結果が得られた場合には、現在の最大ファイル番号が使用可能な上限値(9,999)であり、これより大きな新規ファイル番号は設定できないということになる。この場合には、ステップＳ３１０以降の処理に進む。
ステップＳ３１０においては、同じ記録先ディレクトリに対応するディレクトリエントリに格納されている格納ファイル数fnumを参照し、次のステップＳ３１１において、この参照した格納ファイル数fnumについて、fnum＝9,999となっているか否かについて判別する。
図８（ｂ）にて説明したように、ファイル番号としては0001〜9999が使用可能とされているが、このことは、１つのディレクトリに格納して管理可能なファイルの最大数が9,999であることを意味している。ステップＳ３１１において肯定の判別結果が得られた場合には、記録先ディレクトリにおいては、9,999個の静止画ファイルを格納していることになり、これ以上静止画ファイルを格納することはできない。そこで、この場合には、ステップＳ３１４に進んで、エラーメッセージを返送する。図１０には示していなかったが、アプリケーション１００側で、このエラーメッセージを受け取った場合には、例えば、記録先ディレクトリの格納ファイル数がいっぱいで、これ以上ファイルを記録することはできない旨を、例えば表示や音声などによりユーザに通知するなどの、所定のエラー対応処理を実行するようにされる。
【０１１０】
一方、ステップＳ３１１にて否定結果が得られた場合には、記録先ディレクトリに格納されるファイルの最大ファイル番号としては使用可能な上限値となっているが、この最大ファイル番号よりも小さなファイル番号について未使用となっているものがあることになる。
そこで、この場合には、ステップＳ３１２に進んで、記録先ディレクトリが格納するファイルにおいて未使用となっているファイル番号のうちから最小値を検索するための処理を実行する。
このためには、記録先ディレクトリに格納されるファイル群に対応するディレクトリエントリ格納領域にアクセスする。このディレクトリエントリ格納領域に格納されるディレクトリエントリにおける名称の領域を、ディレクトリエントリごとに順次参照していくことで、記録先ディレクトリに格納されるファイルにおけるファイル番号の使用状況が認識され、未使用のファイル番号のうちで最小値となるファイル番号が特定できることになる。
そして、ステップＳ３１３により、上記ステップＳ３１２において検索して得た、未使用のうちで最小値となるファイル番号を、新規ファイル番号としてアプリケーション１００に返送するようにされる。
【０１１１】
上記図１１に示した処理によれば、記録先ディレクトリに格納されるファイルについてのファイル番号の使用状況として、そのときに使用されている最大ファイル番号よりも大きなファイル番号が未使用となっている状況（ステップＳ３０６において肯定の判別結果が得られる）では、ステップＳ３０７〜Ｓ３０９の処理によって、新規ファイル番号として、これまでの最大ファイル番号について１インクリメントして得られる、新規の最大ファイル番号を採用することとしている。
このアルゴリズムの場合、例えば一旦記録済みとなったファイルが削除されるなどしたときには、最大ファイル番号以下のファイル番号が未使用のまま残っているとしても、これにかかわらず、使用可能なファイル番号の上限値（９９９９）に到達するまでは、最大ファイル番号をインクリメントして新規ファイル番号を設定していくことにはなる。しかし、実際的なこととして、本実施の形態では、ファイル番号として０００１〜９９９９までを使用可能とされており、従って、１つのディレクトリ（フォルダ）に対して最大で９９９９のファイルを格納することができるから、通常の使用においてファイル番号が不足することはほとんどないと考えられる。つまり、通常の使用においては、最大ファイル番号をインクリメントする処理手順により新規ファイル番号を設定するようになっている。
【０１１２】
例えば、他のファイル番号設定のアルゴリズムとして、最大ファイル番号以下のファイル番号が未使用のまま残っている状況である場合には、必ず、この未使用のファイル番号のうちから所定規則（例えば最小値を選択するなど）に従って１つのファイル番号を選択し、これを新規ファイル番号とする手順とすることも考えられる。
しかしながら、この処理は、未使用のファイル番号を特定するために、記録対象ファイルを格納する階層位置に既に存在しているとされるファイルのディレクトリエントリを順次参照して、ファイル番号の使用状況を把握する必要があり、その分、処理負担が重くってファイル記録処理のパフォーマンスを低下させることにつながる。
あるいは、ファイル番号の使用状況を示すようなテーブル情報をＦＡＴファイルシステムの管理情報（ディレクトリエントリ、ＦＡＴ領域）とは別に作成して管理することも考えられる。しかしながら、この場合には、前述もしたように、ＦＡＴファイルシステムの管理情報以外に、上記テーブル情報のメンテナンスも実行しなければならなくなり、情報管理処理が複雑化することになる。また、新規にファイルを記録するごとに、ファイル番号決定のために、ＦＡＴファイルシステムの管理情報以外のテーブルにアクセスする必要もあるために、そのためのアクセス時間が必要となり、これもファイル記録処理のパフォーマンスを低下させる要因となり得る。
【０１１３】
これに対して、最大ファイル番号をインクリメントして新規ファイル番号を設定するアルゴリズムであれば、図１１により説明したように、記録先ディレクトリのディレクトリエントリにアクセスして、ここに格納される最大ファイル番号の値を参照しさえすれば、新規ファイル番号が特定される。つまり、例えばディレクトリエントリを順次参照する手順は省かれる。また、このアルゴリズムを実現するために、最大ファイル番号（及び格納ファイル数）の管理は、ＦＡＴファイルシステムの管理情報であるディレクトリエントリに最大ファイル番号（及び格納ファイル数）を格納することで行うようにされている。これにより、ＦＡＴファイルシステムの管理情報とは別個の管理情報を備えなくとも、最大ファイル番号（及び格納ファイル数）を管理できるようにしている。
このようにして、最大ファイル番号をインクリメントして新規ファイル番号を設定するアルゴリズムでは、上記しているようなファイル記録処理のパフォーマンスの低下要因は排除されることになる。つまり、高速にファイル番号（つまりファイル名）を決定することができる。図１０から分かるように、ファイルの記録処理としては、先ず、準備処理としてディレクトリエントリを生成し、この後に記録対象ファイルのメディアへの実際の書き込みを開始するようになっている。準備処理段階でファイル名を設定するのは、ディレクトリエントリを生成するのにあたり、名称を格納する必要があることによる。このことから、記録対象ファイルのメディアへの書き込みは、ファイル名が設定されるまで待機しなければならないことになる。逆に、高速にファイル番号（つまりファイル名）を決定できれば、ファイル記録処理を高速に遂行できる、ということになる。
【０１１４】
カメラの撮影機能として、短時間とされる間隔で連続的に写真撮影を行っていく高速連写が知られている。この高速連写の機能をデジタルスチルカメラ１に搭載することとした場合には、撮像画像から生成した静止画ファイルを、高速連写のタイミングに遅れないようにしてメディアに書き込んで記録していかなければならない。このときには、静止画ファイルを１つメディアに記録していくごとに、これに対応してディレクトリエントリやＦＡＴ領域などの更新も行っていく必要がある。従って、ファイル名としても、静止画ファイルを記録するごとに、逐次設定を行う必要がある。このために、例えばファイル名の設定処理に一定以上の時間を要することとなると、静止画ファイル１枚あたりに要する記録処理時間が、適正な高速連写を保証できない程度に長くなってしまう可能性がある。
このことから、本実施の形態としてのファイル名設定のアルゴリズムは、デジタルスチルカメラに高速連写機能を与えた場合に非常に有効であるということがいえる。ファイル名が迅速に決定されてファイル記録処理時間が短縮されるようになれば、安定した高速連写の動作が得られることにつながるからである。
【０１１５】
そのうえで、本実施の形態では、最大ファイル番号（fmax）が使用可能な上限値（９９９９）まで到達した場合においては、最大ファイル番号以内のファイル番号のうちで未使用のものを新規ファイル番号として採用するアルゴリズムに切り換える（ステップＳ３０６からステップＳ３１１以降に進行する）ようにしていることで、使用可能なファイル番号については全て使用できるように配慮しているものである。
【０１１６】
このことから、本実施の形態におけるファイル番号の決定処理としては、最大ファイル番号をインクリメントする手順を原則としており、最大ファイル番号以内で未使用となっているファイル番号を検索してファイル番号を設定する手順は、最大ファイル番号がファイル番号の使用可能上限値（９９９９）に至ったことで、これ以上最大ファイル番号をインクリメントして新規ファイル番号を設定できなくなったことに対する救済のための処理であるとしてとらえることができる。
先に説明したように、通常の使用では、ファイル番号の使用可能上限値が充分に大きな値であれば、最大ファイル番号がファイル番号の使用可能上限値に至ることは非常に稀であるので、この観点からすれば、図１１においてステップＳ３０６からステップＳ３１１以降に進行する処理を省略することも、場合によっては考えられる。
【０１１７】
また、本実施の形態においてファイル名設定のために管理が必要な必須情報は最大ファイル番号となるのであるが、本実施の形態におけるファイル番号は、図８（ｂ）にて説明したように、DCFの下で規定されているファイル名称の一部とされる。つまり、本実施の形態としては、DCFの規定範囲においてファイル名設定の処理が高速、かつ効率的に行われるようにされているということがいえる。
【０１１８】
ところで、本実施の形態において、ディレクトリエントリに格納される最大ファイル番号fmaxの管理（メンテナンス）としては、図１１におけるステップＳ３０７処理として示されている。これまでの説明から理解されるように、最大ファイル番号fmaxは、新規にファイルを記録していくのに応じて、使用可能上限値までインクリメントをしていけばよいので、このステップＳ３０７の処理により適正に管理がされることになる。
これに対して、同じくディレクトリエントリに格納されるファイル数fnumの管理は、新規にファイルを記録する場合だけでなく、ファイルを削除した場合にも行う必要がある。新規にファイルを記録する場合に対応したファイル数fnumの管理は、図１１におけるステップＳ３０８として示されている。しかし、図１１の処理シーケンスは、新規にファイルを記録することに対応した準備処理の一部であるので、ファイル削除に対応したファイル数fnumの管理は、ここでは実行されない。
【０１１９】
そこで、図１２により、ファイル数numの管理を含むファイル削除に対応した処理について説明しておくこととする。この処理は、ファイルシステム１０１が担当する処理となる。
例えば所定のアプリケーション１００からファイルの削除の指示を受けたとすると、ファイルシステム１０１は、ステップＳ４０１、Ｓ４０２の処理により、ファイル削除の指示と共に通知された、削除対象ファイルまでのパス（絶対パス又は相対パス）に従って、削除対象ファイルを格納するディレクトリである、削除先ディレクトリを辿っていくようにされる。このステップＳ４０１、Ｓ４０２の処理としては、先に図１１により説明したステップＳ３０３，Ｓ３０４に準じたものとなる。そして、ステップＳ４０２により削除先ディレクトリに到達したことが判別されると、ステップＳ４０３に進む。
【０１２０】
ステップＳ４０３に至った段階では、カレントディレクトリとして、削除先ディレクトリが設定されている状態にある。つまり、削除先ディレクトリのディレクトリエントリにアクセスしている状態にある。この削除先ディレクトリのディレクトリエントリには、自身が格納するファイルの総数を示す格納ファイル数fnumの情報を格納している。そこで、ステップＳ４０３においては、このディレクトリエントリに格納される格納ファイル数fnumについて、１デクリメントした値に更新するようにされる。これにより、格納ファイル数fnumは、削除対象ファイルを削除した後の削除先ディレクトリにおける実際のファイル格納数と一致することになる。
【０１２１】
そして、次のステップＳ４０４においては、削除対象ファイルに対応するディレクトリエントリを削除する処理を実行する。
このためには、削除先ディレクトリのディレクトリエントリにおいて示される先頭クラスタ番号を参照する。この先頭クラスタ番号は、削除先ディレクトリに格納されるファイルのためのディレクトリエントリ格納領域の先頭クラスタを示す。ファイルシステムは、このディレクトリエントリ格納領域にアクセスして、削除対象ファイルに対応するディレクトリエントリを検索する。そして、この検索したディレクトリエントリを削除する。ディレクトリエントリの削除にあたっては、例えばディレクトリエントリの先頭１バイトに対してE5hを書き込むようにされる。先頭１バイトがE5hを示すディレクトリエントリは、削除済みとして扱うべきことがＦＡＴファイルシステムで規定されている。このようにして削除対象ファイルに対応するディレクトリエントリを削除することで、ＦＡＴファイルシステム上では、このファイルが削除されたものとして管理されることになる。
【０１２２】
これまでの説明は静止画ファイルのファイル名設定に関するものであったが、本実施の形態では、図８（ａ）に示したように、ディレクトリ（フォルダ）についても、番号付与によって名称設定を行うようにされている。このことから、本実施の形態としては、ディレクトリ（フォルダ）名についても、これまでに説明したファイル名設定（ファイル番号設定）に準じて設定できることになる。つまり、ディレクトリ構造を形成する階層要素として、ファイル、ディレクトリの何れを対象としても、本発明に基づいた名称設定を適用することができる。そこで、続いては、本実施の形態としてのディレクトリ名設定に関して説明する。
【０１２３】
図１３（ａ）には、メディアの記録内容例として、先に図７（ａ）に示したのと同様のディレクトリ構造が示されている。
この図１３の構造において、ディレクトリ［DCIM]の直下となるディレクトリ階層について着目してみると、この階層では、静止画ファイル格納用のディレクトリ［nnnMSDCF］を配置することとなっており、それぞれディレクトリ番号が異なる複数のディレクトリ［nnnMSDCF］を配置している。このことは、静止画ファイル格納用のディレクトリ［nnnMSDCF］については、新規追加、あるいは削除が可能とされていることを意味している。本実施の形態では、この静止画ファイル格納用のディレクトリ［nnnMSDCF］を対象として、本発明に基づいた名称設定を適用する。
【０１２４】
図１３（ａ）に示される静止画ファイル格納用のディレクトリ［nnnMSDCF］の階層では、ディレクトリ［101MSDCF］、［102MSDCF］、［104MSDCF］、［105MSDCF］が位置している。この状態は、ディレクトリ［nnnMSDCF］における最大ディレクトリ番号が[105]であり、また、ディレクトリ［DCIM］が格納するディレクトリ数としては４であることになる。
【０１２５】
上記図１３（ａ）に示す状態から、ディレクトリ［nnnMSDCF］を新規作成することとする。図１３（ａ）に示す状態において、ディレクトリ［nnnMSDCF］の最大ディレクトリ番号は［105］である、図８（ａ）にて説明したように、ディレクトリ番号としては、100〜999までを使用できるので、最大ディレクトリ番号が[105]であるということは、この最大ディレクトリ番号よりも大きいディレクトリ番号を使用できる状態にあることになる。そこで、この場合には、図１３（ｂ）に示すようにして、新規ディレクトリについては、[105]を１インクリメントした[106]のディレクトリ番号を設定し、ディレクトリ名全体としては、［106MSDCF］を設定する。この結果に対応しては、格納ディレクトリ数は５となｒｋ、最大ディレクトリ番号としては１０６となる。
つまり、ディレクトリ名の設定にあたっても原則としては、ファイル名の設定と同様にして、新規ディレクトリを作成する前段階での最大ディレクトリ番号を１インクリメントした値を、新規ディレクトリのディレクトリ番号として設定するものである。
【０１２６】
上記図１３に示すようにしてディレクトリ名を設定するための本実施の形態の構成について、以降説明していく。
本実施の形態としてのディレクトリ名設定のためには、ディレクトリ（フォルダ）を格納するディレクトリに対応するディレクトリエントリに対して、最大ディレクトリ番号と、格納ディレクトリ数の情報を組み込むようにされる。このディレクトリエントリ構造について、再度、図９を参照して説明する。
先の図９の説明では、ファイル格納用ディレクトリ（[nnnMSDCF]）のディレクトリエントリの構造として、最大ファイル番号を格納するための領域（バイト位置Ah，Ch）と、格納ファイル数を格納するための領域（バイト位置8h−9h）を設けることとしていた。
これに準じて、ファイル格納用ディレクトリ（[nnnMSDCF]）を格納するディレクトリ（[DCIM]）に対応するディレクトリエントリにおいては、最大ファイル番号に代えて、最大ディレクトリ番号を格納するようにされる。また、格納ファイル数に代えて格納ディレクトリ数を格納するようにされる。ここでの最大ディレクトリ番号は、現ディレクトリエントリが対応するディレクトリ（フォルダ：［DCIM］）内に格納している全ディレクトリ（フォルダ）のディレクトリ名に使用されているディレクトリ番号のうちで、最大値となる番号を指す。また、格納ディレクトリ数は、現ディレクトリエントリが対応するディレクトリ（フォルダ：［DCIM］）内に格納しているディレクトリ（フォルダ）の総数を指す。
【０１２７】
図１４のフローチャートは、ディレクトリ［nnnMSDCF］を新規作成するための処理を示している。この図に示す処理としても、先の図１０と同様に、ＣＰＵ１０がプログラムに従って実行する一連の処理を、アプリケーション１００とファイルシステム１０１が連携して実行する処理として示している。
【０１２８】
新規にディレクトリ[nnnMSDCF]を作成することとなった場合、先ず、ディレクトリの新規作成機能を有するアプリケーション１００は、ステップＳ５０１として示すように、新規作成すべきディレクトリのディレクトリ番号の問い合わせをファイルシステム１０１に対して行う。このときには、ディレクトリ番号問い合わせのコマンドとともに、新規作成されるディレクトリ[nnnMSDCF]を格納する作成先ディレクトリ([DCIM])を、絶対パス、又は現在のカレントディレクトリを基準とした相対パスにより通知する。
【０１２９】
ステップＳ５０１によるディレクトリ番号の問い合わせを受けたファイルシステム１０１では、ステップＳ６０１としての処理により、新規作成されるディレクトリに対応するディレクトリ番号（新規ディレクトリ番号）を決定し、アプリケーション１００に対して返送する。このステップＳ６０１の処理については後述する。
【０１３０】
アプリケーション１００は、ステップＳ５０２の処理により、ファイルシステム１０１から返送された新規ディレクトリ番号に基づいて、ディレクトリ名における上位３文字に対応する、ディレクトリ番号部分の文字列を生成する。また、続くステップＳ５０３により、設定情報として予め用意されている、ディレクトリ名における下位５文字に対応する任意文字列部分の内容を、例えばレジスタから読み込むなどして取得する。
そして、ステップＳ５０４により、上記ステップＳ５０２により得られたディレクトリ番号部分の文字列と、ステップＳ５０３により得られた任意文字列部分とを組み合わせるようにして、８文字分の文字列によるディレクトリ名を生成する。
【０１３１】
ここまでの処理が終了したとされると、アプリケーション１００は、ステップＳ５０５により、ファイルシステムに対してディレクトリ作成要求を発行する。このときには、上記ステップＳ５０４にて生成したディレクトリ名を、そのパス（絶対パス又は相対パス）とともに通知する。
【０１３２】
ファイルシステム１０１は、ディレクトリ作成要求を受けると、先ず、ステップＳ６０２としての処理により、新規作成するディレクトリに対応するディレクトリエントリを格納すべきディレクトリエントリ格納領域の先頭クラスタを決定する。このためには、通知されたパスに従って作成先ディレクトリまでを辿っていくようにされる。そして、この作成先ディレクトリのディレクトリエントリに示される先頭クラスタ番号を取得して、先頭クラスタの決定結果として出力する。実施の形態の実際としては、作成先ディレクトリまでをパスに従って辿ることで、ディレクトリ［DCIM]に対応するディレクトリエントリにアクセスすることになる。そして、このディレクトリエントリの先頭クラスタ番号を、決定結果として出力する。ディレクトリ［DCIM]に対応するディレクトリエントリが示す先頭クラスタ番号は、ディレクトリ［DCIM]が格納するディレクトリ、つまり、ディレクトリ[nnnMSDCF]に対応するディレクトリエントリ格納領域の先頭クラスタを示す。
【０１３３】
ファイルシステム１０１は、次のステップＳ６０３により、新規作成対象のディレクトリに対応するディレクトリエントリを生成する。この生成に際しては、ステップＳ５０５の処理によりアプリケーション１００から通知されたディレクトリ名を名称に使用する。そして、この生成したディレクトリエントリをメディアに記録する。このためには、先ず、上記ステップＳ６０２により決定した先頭クラスタに対してアクセスする。つまり、メディア上のディレクトリ[nnnMSDCF]に対応するディレクトリエントリ格納領域の先頭クラスタにアクセスする。そして、このディレクトリエントリ格納領域において未使用となっている領域に対して、生成したディレクトリエントリを書き込むようにして記録させる。そして、ディレクトリエントリの記録結果に応じて、ディレクトリ作成要求に応じたレスポンスをステップＳ５０６に対して返送するようにされる。
アプリケーション１００では、このレスポンスをステップＳ５０６により受信して、以降の所要の処理シーケンスに移行することになる。
この図１４に示す処理としても、アプリケーション１００側の処理としては従来と変わるところは特にない。
【０１３４】
図１５は、上記図１４におけるステップＳ６０１としての新規ディレクトリ番号の決定、返送の処理を示している。
この処理としては、先ず、ステップＳ７０１、Ｓ７０２により、アプリケーション１０から通知された作成先ディレクトリに到達するまで、パスに従ってディレクトリ（ディレクトリエントリ）を辿るようにして検索を行っていく処理を実行する。このステップＳ７０１，Ｓ７０２の処理の実際は、先に図１１に示したステップＳ３０３，Ｓ３０４の処理に準じたものとされればよい。そして、ステップＳ７０２にて作成先ディレクトリに到達したとして肯定の判別結果が得られると、ステップＳ７０３以降の処理に進む。
【０１３５】
ステップＳ７０３に至った段階では、カレントディレクトリとしては、通知された作成先ディレクトリ（ディレクトリ[DCIM]）となっているので、作成先ディレクトリ対応するディレクトリエントリにアクセスされている状態となっている。そこで、ステップＳ７０３としては、このディレクトリエントリに格納される最大ディレクトリ番号dmaxを参照する。そして、続くステップＳ７０４により、参照した最大ディレクトリ番号dmaxについて、dmax＝999であるか否かについて判別する。つまり、現段階での最大ディレクトリ番号が、ディレクトリ番号として使用可能な上限値と等しいが否かについて判別する。
【０１３６】
上記ステップＳ７０４において否定結果が得られた場合には、現在の最大ディレクトリ番号よりも大きなディレクトリ番号が未使用で残っていることになる。この場合には、ステップＳ７０５〜Ｓ７０７の処理を実行する。
【０１３７】
ステップＳ７０５〜Ｓ７０７の処理は、図１１におけるステップＳ３０７〜Ｓ３０９の処理に準じて、新規ディレクトリ番号を決定して返送するための処理となる。
先ず、ステップＳ７０５においては、作成先ディレクトリ（［DCIM］）に対応するディレクトリエントリに格納している最大ディレクトリ番号dmaxの値（ステップＳ３０５にて参照した値である）について、１インクリメント（dmax＝dmax＋１）した値をセットするようにされる。
また、次のステップＳ７０６において、同じ作成先ディレクトリ（［DCIM］）に対応するディレクトリエントリに格納している格納ファイル数dnumの値について、１インクリメント（dnum＝dnum＋１）した値をセットするようにされる。
そして、ステップＳ７０７により、上記ステップＳ７０５により更新して得た最大ディレクトリ番号dmaxの値を、新規ディレクトリ番号としてアプリケーション１００に返送する。
このようにして、ディレクトリ名の設定にあたっても、作成先ディレクトリに格納しているディレクトリのディレクトリ名に使用されている最大ディレクトリ番号が、使用可能な上限値(999）よりも小さいとされる、通常の状況では、これまでの最大ディレクトリ番号を１インクリメントした値を新規ディレクトリ番号とすることにしているものである。
【０１３８】
そのうえで、この場合においても、現在の最大ディレクトリ番号が使用可能な上限値(999)と等しくなって、これよりも大きな新規ディレクトリ番号を設定できなくなった状況に対応しては、未使用のディレクトリ番号から新規ディレクトリ番号を設定するようにされている。ステップＳ７０４での肯定結果の出力に応じて実行されるステップＳ７０８以降が、このための処理となる。
【０１３９】
ステップＳ７０８においては、同じ記録先ディレクトリに対応するディレクトリエントリに格納されている格納ファイル数fnumを参照する。そして、次のステップＳ７０９において、この参照した格納ファイル数fnumについて、fnum＝900となっているか否かについて判別する。
図８（ａ）にて説明したように、ディレクトリ番号としては100〜999が使用可能とされている。従って、例えばディレクトリ［DCIM]が格納可能なファイル格納用ディレクトリ（[nnnMSDCF]）の最大数としては、９００個であることになる。このことから、ステップＳ７０９において肯定の判別結果が得られた場合には、ディレクトリ［DCIM]においては、格納可能な最大数のファイル格納用ディレクトリ（[nnnMSDCF]）を格納していることとなり、これ以上、ファイル格納用ディレクトリを新規作成することはできない。そこで、この場合には、ステップＳ７１２により、アプリケーション１００にエラーメッセージを返送する。図１４には示していないが、アプリケーション１００側でこのエラーメッセージを受け取った場合には、例えば、作成先ディレクトリの格納ディレクトリ数はいっぱいで、これ以上ディレクトリを作成できない旨をユーザに通知するなどの、所定のエラー対応処理を実行するようにされる。
【０１４０】
これに対して、ステップＳ７０９にて否定結果が得られた場合には、作成先ディレクトリに格納されるディレクトリの最大ディレクトリ番号としては使用可能上限値と等しくなっているが、この最大ディレクトリ番号よりも小さなディレクトリ番号について未使用となっているものがあることになる。
そこで、この場合には、ステップＳ７１０に進んで、作成先ディレクトリが格納するディレクトリにおいて未使用となっているディレクトリ番号のうちから最小値を検索するための処理を実行する。
このための処理としては、作成先ディレクトリに格納されるディレクトリ（ファイル格納用ディレクトリ）群に対応するディレクトリエントリ格納領域にアクセスし、ディレクトリエントリにおける名称の領域を順次参照していくようにされる。これにより、ファイル格納用ディレクトリ間でのディレクトリ番号の使用状況が認識され、未使用のディレクトリ番号のうちで最小値となるディレクトリ番号を特定することができる。
そして、ステップＳ７１１により、上記ステップＳ７１０において特定した最小値のディレクトリ番号を、新規ディレクトリ番号としてアプリケーション１００に返送する。
【０１４１】
このようにして、新規作成されるディレクトリのディレクトリ名についても、ファイル名に準じたアルゴリズムによって設定することができる。これにより、ディレクトリ作成についての処理を高速化することが可能になる。例えば撮像画像としての静止画ファイルをメディアに記録していく過程において、新規にディレクトリを作成して、以降はこのディレクトリに対して静止画ファイルを記録していくべき状況となったような場合に、本実施の形態では、ディレクトリの作成を迅速に遂行して、例えば次のファイル記録処理にスムーズに移行することが可能になる。
【０１４２】
なお、ディレクトリの削除に対応したディレクトリエントリに格納される格納ディレクトリ数のメンテナンスは、図１２により説明した処理に準じたものとなる。つまり、ステップＳ４０１，Ｓ４０２に対応する処理として、削除対象のディレクトリを格納する削除先ディレクトリ（[DCIM]）にアクセスし、ステップＳ４０３により、この削除先ディレクトリのディレクトリエントリに格納されている、格納ディレクトリ数dnumについて１デクリメントした値に更新する。そして、ステップＳ４０４において、削除対象のディレクトリに対応するディレクトリエントリを削除する。
【０１４３】
参考として、図２に示したファイルシステム階層モデルにおいて、ファイルシステム１０１の内部機能についてより詳細に示した構成例を、図１６に示しておくこととする。なお、この図においては、図２と同様に、アプリケーション１００、ファイルシステム１０１、デバイスドライバ１０２、及びメディア１０３によるシステム階層モデル全体を示している。
【０１４４】
この図に示すようにして、ファイルシステム１０１としてソフトウェアが実行する処理を機能ブロックとしてみた場合には、記録制御部２００及びメディア制御部２１０を備えて構成されるものとみることができる。
【０１４５】
記録制御部２００は、メディアに対するデータの記録（書き込み）及び読み出しに関する各種制御処理を実行するもので、ディレクトリエントリ制御部２０１、ＦＡＴ制御部２０２、及びクラスタ制御部２０３を備える。また、メディア制御部２１０は、ファイルシステムがメディアに対するコントロールを行うために、デバイスドライバ１０２側とデータの授受を行うことが可能な機能部位として位置算出部２１１を備える。
【０１４６】
記録制御部２００内のディレクトリエントリ制御部２０１は、例えばメディアに対するファイルの書き込み、消去などのデータ処理結果に応じてディレクトリエントリを作成、削除、更新するなど、ディレクトリエントリについての各種所要の制御処理を実行する。ＦＡＴ制御部２０２は、メディアに対するファイルデータ処理結果に応じてＦＡＴ領域における所定のＦＡＴエントリについての書き換えを実行するなど、ＦＡＴ領域についての各種所要の制御処理を実行する。クラスタ制御部２０３は、ファイルシステム内での処理がクラスタレベルで実行されるようにするための各種制御処理を実行する。
例えばメディアに書き込むためのデータが、ファイル単位の処理としてアプリケーション１００から渡されてきたとすると、クラスタ制御部２０３は、このファイルレベルのデータをクラスタレベルによるデータに変換する。そして、このクラスタレベルによるデータについてのメディアへの書き込みを、メディア制御部２１０の位置算出部２１１に指示する。
位置算出部２１１では、ＦＡＴ制御部２０２により管理しているＦＡＴ領域の内容を参照して認識されるメディアの未使用領域のうちから、ファイルのデータを書き込むべきクラスタの位置（クラスタ番号）を算出する。そして、デバイスドライバ１０２に対して、書き込むべきクラスタ単位のデータを受け渡すと共に、このデータを書き込むべきクラスタ番号を指示する。デバイスドライバ１０２は、指示されたクラスタ番号について最終的には、メディア上の記憶領域の物理セクタのアドレスに変換して、セクタレベルによりメディアへのデータの書き込みを実行するようにされる。
【０１４７】
また、これとともに、ファイルシステムでは、上記のようにしてメディアに書き込まれて記憶されるファイルがＦＡＴファイルシステム上で適正に管理されるように、ディレクトリエントリ及びＦＡＴ領域についての書き換え（更新）を行う。
例えば先ず、ディレクトリエントリ制御部２０１により今回記録するファイルについてのディレクトリエントリを作成する。このときには、ＦＡＴ制御部２０２と連携して、ＦＡＴ領域における空き領域から、ファイルを記録すべきクラスタを決定する。これに伴い、ディレクトリエントリにおける開始クラスタに格納する値も決まることになる。また、ファイルを記録すべきクラスタが決定されるのに応じて、ＦＡＴ制御部２０２は、ＦＡＴ領域において、このファイルについてのクラスタチェインなどの内容が示されるように、所要のクラスタ番号のＦＡＴエントリの値を書き換える。
そして、このようにして作成したディレクトリエントリ、及びＦＡＴ領域の書き換え内容を、先の説明と同様にして、クラスタ制御部２０３及びメディア制御部２１０（位置算出部２１１）の処理によって、メディアの所定領域に書き込んで記憶させる。
【０１４８】
本実施の形態としては、ファイルシステム１０１の階層レベルでの処理として、ディレクトリエントリにおいて定義した最大ファイル（ディレクトリ）番号、格納ファイル（ディレクトリ）番号についてのメンテナンスと、これらの情報を利用した新規ファイル（ディレクトリ）番号の設定処理（図１１，図１５）が実行されるように、例えばディレクトリエントリ制御部２０１などについてのプログラムを構成することになる。
また、確認のために述べておくと、ファイルの新規記録またはディレクトリの新規作成に関するアプリケーション１００のプログラム構成について、特に変更の必要は無い。
【０１４９】
なお、本発明としてはこれまでに説明した実施の形態としての構成に限定されるべきではない。例えば、実施の形態では、図７、図１３などに示したデジタルスチルカメラのディレクトリ構造を前提としているが、他のディレクトリ構造にも適用できるものである。この場合において、１つのディレクトリ（フォルダ）に対して、ファイルとディレクトリ（フォルダ）とが混在して格納されるようなディレクトリ構造に対応しては、１つのディレクトリエントリにおいて、最大ファイル番号と最大ディレクトリ番号（及び格納ファイル数と格納ディレクトリ数）の両者の情報を格納する領域を定義すればよい。
また、実施の形態におけるファイル管理についてはＦＡＴファイルシステムを採用することとしているが、例えばＨＳＦ(Hierarchical File System)などをはじめとする他のファイルシステムに対応しても本発明は適用可能であり、ファイルシステムやファイル管理方式の規格に関しては特に限定されるべきものではない。
また、本発明のファイル名、ディレクトリ名の設定は、前述もしたように、写真画像としての静止画ファイルの高速連写などに有効ではあるが、メディアに記録するファイル形式としては特に限定されるべきではない。
【０１５０】
また、本発明による効果の１つとしては、例えばファイルシステムとは別個にテーブル情報を備えないことなどに依るアクセス効率の向上が挙げられる。このような効果は、例えば図１においてメディアコントローラ１３と接続されているもののうちであれば、ＨＤＤ、光ディスク、光磁気ディスクなど、アクセス時においてヘッドとデータ記録面との相対位置が物理的に移動するタイプのメディアにて顕著に得られる。しかしながら、例えば半導体記憶装置などにファイルを記録する際にも、ファイル名、ディレクトリ名設定の処理の効率化が図られることの効果は同様に得ることができる。従って、本発明としては、ヘッドによるアクセスが行われるタイプのメディアに限定されることなく、メディア全般に対応してその効果が得られるものである。
また、メディアとホスト側機器との関係としては、例えばケーブル、コネクタなどの物理的接続手段を用いて接続されるメディアの他、Bluetooth、無線ＬＡＮ(Local Area Network)などにより、ホストと無線により接続されるメディアを対象とすることも考えられる。
また、本発明の情報処理装置としても、実施の形態に挙げたデジタルスチルカメラに限定されるべきものではなく、例えば、デジタルスチルカメラ、テレビジョン放送番組の予約録画機器、さらにはパーソナルコンピュータをはじめ、これに準じた各種情報処理機器など、各種の記憶媒体に対応してデータ書き込み／読み出しなどのデータ処理が可能な機器であれば、本発明が適用できる。
【図面の簡単な説明】
【０１５１】
【図１】本発明の実施の形態のデジタルスチルカメラの構成例を示すブロック図である。
【図２】ＦＡＴファイルシステムのシステム構成を階層モデルにより示す図である。
【図３】ＦＡＴファイルシステムにおけるメディアのフォーマット構造を示す図である。
【図４】ＦＡＴファイルシステムにおけるＭＢＲの構造を示す図である。
【図５】ＦＡＴファイルシステムにおけるディレクトリエントリの構造を示す図である。
【図６】ＦＡＴファイルシステムによるファイル記録位置の管理例を示す図である。
【図７】実施の形態のデジタルスチルカメラにより静止画ファイルを記録したメディアの記録内容例をディレクトリ構造により示すとともに、新規ファイルに対するファイル名付与規則を説明する図である。
【図８】DCFに従った、本実施の形態におけるファイル名及びディレクトリ名の規定を示す図である。
【図９】実施の形態に対応するディレクトリエントリの定義内容例を示す図である。
【図１０】実施の形態において、新規にファイルを記録するための準備処理を示すフローチャートである。
【図１１】実施の形態において新規ファイル番号を決定するための処理を示すフローチャートである。
【図１２】ファイル削除に対応した格納ファイル数のメンテナンス処理を示すフローチャートである。
【図１３】実施の形態のデジタルスチルカメラにより静止画ファイルを記録したメディアの記録内容例をディレクトリ構造により示すとともに、新規ディレクトリに対するディレクトリ名の付与規則を説明する図である。
【図１４】実施の形態において、新規にディレクトリを作成するための処理を示すフローチャートである。
【図１５】実施の形態において新規ディレクトリ番号を決定するための処理を示すフローチャートである。
【図１６】ファイルシステム階層における処理機能を示す図である。
【符号の説明】
【０１５２】
１  デジタルスチルカメラ、２  光学系部、３  光電変換部、４  画像信号処理部、５  画像入出力部、６  カメラ機能部、７  表示部、８  音声処理部、９  音声入出力部、１０  ＣＰＵ、１１  ＲＯＭ、１２  ＲＡＭ、１２ａ  不揮発性メモリ、１３  メディアコントローラ、１５  操作入力部、１６  通信部、１００  アプリケーション、１０１  ファイルシステム、１０２  デバイスドライバ、２００  記録制御部、２０１  ディレクトリエントリ、２０２  ＦＡＴ制御部、２０３  クラスタ制御部、２１０  メディア制御部、２１１  位置算出部
【図１】
2006178633.tif 000003
【図２】
2006178633.tif 000004
【図３】
2006178633.tif 000005
【図４】
2006178633.tif 000006
【図５】
2006178633.tif 000007
【図６】
2006178633.tif 000008
【図７】
2006178633.tif 000009
【図８】
2006178633.tif 000010
【図９】
2006178633.tif 000011
【図１０】
2006178633.tif 000012
【図１１】
2006178633.tif 000013
【図１２】
2006178633.tif 000014
【図１３】
2006178633.tif 000015
【図１４】
2006178633.tif 000016
【図１５】
2006178633.tif 000017
【図１６】
2006178633.tif 000018