(57)【要約】【課題】ファイル構成を再構築できるようにするとともに、ディレクトリ番号及びファイル番号の使用効率を良くする。【解決手段】記憶媒体に記録される画像ファイルのディレクトリとファイル名を管理するとともに、ディレクトリの情報を調べ、ディレクトリの所定の条件に応じて、ファイル構成の再構築方法を切り替えてファイル構成を再構築する。例えばディレクトリが意図的に作成されたものである場合には、ディレクトリ下のファイル構成は変えることなく、ディレクトリ番号を最小値から連続した番号に振りなおすが、そうでない場合には、複数存在するディレクトリに対して、各ディレクトリ下に存在する画像ファイルを、ディレクトリ下に格納できるファイル数の上限数まで統合してディレクトリ数を圧縮するとともに、ディレクトリ番号を最小値から連続した番号に振りなおす。【選択図】図１
2010250602.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段で撮像した画像ファイルをファイル格納規格に基づいて記憶媒体に記録する記録手段と、
前記記録手段により記録される画像ファイルのディレクトリとファイル名の管理及び既に記録されている画像ファイルのディレクトリとファイル名を管理する管理手段と、
前記管理手段により管理されているディレクトリの情報を調べ、ディレクトリの所定の条件に応じて、ファイル構成の再構築方法を切り替えてファイル構成を再構築する再構築手段とを備えたことを特徴とする記録装置。
【請求項２】
前記ファイル構成の再構築方法は、
ディレクトリ下のファイル構成は変えることなく、ディレクトリ番号を最小値から連続した番号に振りなおす第一の再構築方法、
複数存在するディレクトリに対して、各ディレクトリ下に存在する画像ファイルを、ディレクトリ下に格納できるファイル数の上限数まで統合してディレクトリ数を圧縮するとともに、ディレクトリ番号を最小値から連続した番号に振りなおす第二の再構築方法のいずれかであることを特徴とする請求項１に記載の記録装置。
【請求項３】
前記所定の条件とは、ディレクトリが意図的に作成されたものであるかどうかであることを特徴とする請求項１又は２に記載の記録装置。
【請求項４】
前記所定の条件とは、ディレクトリ下の画像ファイルがファイル属性の同一性を有するかどうかであることを特徴とする請求項１又は２に記載の記録装置。
【請求項５】
前記ファイル格納規格は、ＤＣＦ（Ｄｅｓｉｇｎ Ｒｕｌｅ ｆｏｒ Ｃａｍｅｒａ Ｆｉｌｅ Ｓｙｓｔｅｍ）規格であることを特徴とする請求項１乃至４のいずれか１項に記載の記録装置。
【請求項６】
前記ファイル構成の再構築は、前記ファイル格納規格のディレクトリ番号及びファイル番号が上限に達したときに行うことを特徴とする請求項１乃至５のいずれか１項に記載の記録装置。
【請求項７】
撮像手段と、
請求項１乃至６のいずれか１項に記載の記録装置とを備えたことを特徴とする撮像装置。
【請求項８】
撮像手段で撮像した画像ファイルをファイル格納規格に基づいて記憶媒体に記録する記録手段と、
前記記録手段により記録される画像ファイルのディレクトリとファイル名の管理及び既に記録されている画像ファイルのディレクトリとファイル名を管理する管理手段とを備えた記録装置におけるファイル管理方法であって、
前記管理手段により管理されているディレクトリの情報を調べ、ディレクトリの所定の条件に応じて、ファイル構成の再構築方法を切り替えてファイル構成を再構築するステップを有することを特徴とするファイル管理方法。
【請求項９】
撮像手段で撮像した画像ファイルをファイル格納規格に基づいて記憶媒体に記録する記録手段と、
前記記録手段により記録される画像ファイルのディレクトリとファイル名の管理及び既に記録されている画像ファイルのディレクトリとファイル名を管理する管理手段と、
前記管理手段により管理されているディレクトリの情報を調べ、ディレクトリの所定の条件に応じて、ファイル構成の再構築方法を切り替えてファイル構成を再構築する再構築手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルカメラ等の撮像装置で撮像した画像ファイルをファイル格納規格に基づいて記憶媒体に記録する記録装置、撮像装置、ファイル管理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、デジタル技術の発展等に伴い、撮影した画像情報や映像情報を電子的に処理するデジタルカメラの普及が目覚しい。デジタルカメラは、撮影レンズを通過した被写体光束がＣＣＤ等の固体撮像素子に到達して形成される被写体像を電気信号に変換して画像信号として出力する。更に画像信号に画像処理回路内で様々な変換処理を施し、最終的にメモリカード等の記録媒体に画像ファイルとして保存する。
【０００３】
記録媒体上の画像ファイルを管理する規格としては、カメラファイルシステム規格（ファイル格納規格）であるＤＣＦ（ＪＥＩＤＡ規格：Ｄｅｓｉｇｎ Ｒｕｌｅ ｆｏｒ Ｃａｍｅｒａ Ｆｉｌｅ Ｓｙｓｔｅｍ）が現在主流となっている。また、記録媒体上の映像ファイルを管理する規格としては、ＳＤ−Ｖｉｄｅｏ、ＡＶＣＨＤといった規格が広く知られている。
【０００４】
図２を用いてＤＣＦ規格を説明する。ルートディレクトリ（２００）直下のディレクトリ名"ＤＣＩＭ"を持つディレクトリ（２０１）を、ＤＣＦイメージルートディレクトリ（以下、ＤＣＩＭディレクトリ）という。
【０００５】
ＤＣＩＭディレクトリ（２０１）直下には、画像ファイル等のＤＣＦオブジェクト（２０５〜２１３）を格納するための複数のＤＣＦディレクトリ（２０２〜２０４）が作られる。ＤＣＦディレクトリ（２０２〜２０４）は、ＤＣＦ規格により以下のように定義されている。ＤＣＦディレクトリ（２０２〜２０４）のディレクトリ名は８文字から構成されることが定義されており、１〜３文字目は"１００"〜"９９９"の半角数字（以下、ディレクトリ番号）でなければならない。なお、"０００"〜"０９９"の番号は使用しない。４〜８文字目は半角大文字英数字及び"＿"（アンダーバー）で構成される自由文字を割り当てることができる。
【０００６】
ＤＣＦオブジェクト（２０５〜２１３）の名称（以下、ＤＣＦファイル名）は以下のように定義されている。ＤＣＦファイル名は８文字で、１〜４文字目は半角大文字英数字及び"＿"（アンダーバー）で構成される自由文字でなければならない。５〜８文字目は"０００１"〜"９９９９"の半角数字（以下、ファイル番号）でなければならない。
【０００７】
通常の撮影（単写撮影、セルフタイマ撮影）においては、"９００ＡＡＡＡＡ"（２０２）ディレクトリの中に、"ＩＭＧ＿０００１．ＪＰＧ"〜"ＩＭＧ＿９９９９．ＪＰＧ"までの、最大９９９９個のＤＣＦオブジェクトを作成することができる。
【０００８】
ＤＣＦ規格によると、Ｗｒｉｔｅｒ（記録装置）規定で、以下の手順で記録を行うことが規定及び推奨されている。ディレクトリ番号の作成は、ＤＣＦ記録メディア内のＤＣＩＭディレクトリ直下にＤＣＦディレクトリが存在せず、新規にＤＣＦディレクトリを作成する場合、作成するディレクトリ番号は自由とされている。また、既にＤＣＩＭディレクトリ直下にＤＣＦディレクトリが存在し、ＤＣＦディレクトリを追加する場合は、ディレクトリ番号は既に存在するディレクトリの最大番号＋１より連番とすることがＤＣＦ規格で推奨されている。
【０００９】
一方、ファイル番号の作成は、記録しようとするＤＣＦディレクトリ下のファイル中にＤＣＦファイル名が存在しない場合、ファイル番号の初期値は自由とされている。また、記録しようとするＤＣＦディレクトリ下に既にＤＣＦファイル名を持つファイルが存在する場合は、ファイル番号の最大番号＋１の連番とすることがＤＣＦ規格で推奨されている。
【００１０】
このように、ＤＣＦ規格では、記録媒体中にディレクトリ番号を付したＤＣＦディレクトリを作成し、そのＤＣＦディレクトリ下にファイル番号を付したＤＣＦオブジェクトを格納するように規定されている。
【００１１】
現状の一般的なデジタルカメラにおけるディレクトリ番号の振り付け方法としては、次に述べるものが知られている。デジタルカメラに対する記録媒体の交換によってディレクトリ番号の初期化を行う仕様がある。また、交換前の記録媒体のディレクトリ番号をデジタルカメラが記憶しておき、デジタルカメラに装着された新しい記録媒体のディレクトリ番号を前記記憶しておいた連続したディレクトリ番号の後に設定する仕様がある。
【００１２】
しかしながら、上述したようにＤＣＦ規格では、ディレクトリ番号が"９９９"かつファイル番号が"９９９９"以上のファイル及びディレクトリを作成することができない。そのため、実際の記録媒体の記録可能容量に満たない記録容量にも関わらず、ＤＣＦ規格の命名規則の上限に達してしまったことにより新規ディレクトリ番号や新規ファイル番号が生成できないといった現象が発生することが課題となっている。
【００１３】
上述の課題に対処する従来技術として、ディレクトリ番号及びファイル番号が上限に達した場合に、撮影を続けるために一度記録媒体を初期化（フォーマット）し、ディレクトリ番号及びファイル番号を初期値に戻すことにより撮影を継続可能とする技術がある。
【００１４】
しかしながら、記録媒体を初期化する際には、記録媒体に記録されている情報を他の記録媒体にコピーしてから初期化を行わなければならないという煩わしさがある。その上、他の記録媒体にコピーする機器や環境がない場合は撮影をあきらめるか、記憶媒体に記録されている情報をバックアップしないで消去するしかなかった。
【００１５】
上述の新たな課題を解決するための技術として、記録されているファイル構成を解析し、使用されていないディレクトリ番号とファイル番号を探し出して、使用されていないディレクトリ番号とファイル番号を用いてＤＣＦオブジェクトを記録する方法がある。
【００１６】
しかしながら、一般的なデジタルカメラでは、ディレクトリ番号及びファイル番号の小さい方から再生する仕様となっている。そのため、使用されていないディレクトリ番号及びファイル番号に記録されたＤＣＦオブジェクトの再生順序は他のＤＣＦ互換再生機器で再生した場合には保証されないという課題がある。
【００１７】
このような問題を解決するために、例えば特許文献１に開示されている技術がある。ファイル格納規格に基づき記録媒体に作成可能な作成可能ファイル数を算出し、記録媒体の残容量に基づき記録媒体に記録可能なファイル数を算出する。そして、両ファイル数を比較し、いずれか少ない方の数値を撮影可能枚数として表示するとともに、その旨を警告し対処方法を表示する。ここでの対処方法とは、ディレクトリ番号を小さい順に初期値から振りなおす方法又はディレクトリ名称を変更する方法である。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２００３−１５８６４５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
しかしながら、各ＤＣＦディレクトリのディレクトリ番号を変更するだけでは、ＤＣＦディレクトリ下のＤＣＦオブジェクト数が少ない場合、ディレクトリ番号及びファイル番号の使用効率が悪いという課題があった。
【００２０】
本発明はこのような問題に鑑みたものであり、記録媒体の空容量があるにも関わらず、ファイル管理規格の制限によりファイル作成ができないことで記録継続が困難となる状態が突然に発生することを防止するとともに、ディレクトリ番号及びファイル番号の使用効率を良くすることを目的とする。
【課題を解決するための手段】
【００２１】
本発明の記録装置は、撮像手段で撮像した画像ファイルをファイル格納規格に基づいて記憶媒体に記録する記録手段と、前記記録手段により記録される画像ファイルのディレクトリとファイル名の管理及び既に記録されている画像ファイルのディレクトリとファイル名を管理する管理手段と、前記管理手段により管理されているディレクトリの情報を調べ、ディレクトリの所定の条件に応じて、ファイル構成の再構築方法を切り替えてファイル構成を再構築する再構築手段とを備えたことを特徴とする。
【発明の効果】
【００２２】
本発明によれば、ファイル構成を再構築できるようにしたので、記録媒体の空容量があるにもかかわらず、ファイル作成ができないことで記録継続が困難となる状態が突然に発生することを防止でき、また、撮影途中で記録不能状態に陥っても記録媒体を継続利用可能な状態に復帰させることができる。しかも、ファイル構成を再構築する際に、ディレクトリ番号及びファイル番号の使用効率を良くすることができる。
【図面の簡単な説明】
【００２３】
【図１】実施形態に係るデジタルカメラの構成を示すブロック図である。
【図２】ＤＣＦ規格準拠のファイル構成の一例を示す図である。
【図３】ＤＣＦ規格準拠のファイル構成の一例を示す図である。
【図４】再構築した後のＤＣＦ規格準拠のファイル構成の一例を示す図である。
【図５】メニュー画面の一例を示す図である。
【図６Ａ】フォルダ作成画面の一例を示す図である。
【図６Ｂ】フォルダ作成画面の一例を示す図である。
【図６Ｃ】フォルダ作成画面の一例を示す図である。
【図７】管理ファイルの一例を示す図である。
【図８】第１の実施形態においてファイル構成を再構築するまでの手順を説明するフローチャートである。
【図９】ファイル構成の再構築の手順を説明するフローチャートである。
【図１０】ディレクトリ単位でつめる手順を説明するフローチャートである。
【図１１】ファイル単位でつめる手順を説明するフローチャートである。
【図１２】再構築するかどうかを確認する手順を説明するフローチャートである。
【図１３】ディレクトリ単位でつめられるかどうかを確認する手順を説明するフローチャートである。
【図１４】ＤＣＦ規格準拠のファイル構成の一例を示す図である。
【図１５】再構築した後のＤＣＦ規格準拠のファイル構成の一例を示す図である。
【図１６】第２の実施形態においてファイル構成を再構築するまでの手順を説明するフローチャートである。
【図１７】ファイル構成の再構築の手順を説明するフローチャートである。
【図１８】ディレクトリ単位でつめる手順を説明するフローチャートである。
【図１９】ファイル単位でつめる手順を説明するフローチャートである。
【図２０】再構築するかどうかを確認する手順を説明するフローチャートである。
【図２１】ディレクトリ単位でつめられるかどうかを確認する手順を説明するフローチャートである。
【発明を実施するための形態】
【００２４】
以下、添付図面を参照して、本発明の好適な実施形態について説明する。
（第１の実施形態）
図１に、本発明の記録装置を実現するためのシステム図を示す。ここでは、デジタルカメラ（以下、単にカメラとも呼ぶ）を例に説明を行う。本実施形態に係るカメラ１００は、全体を制御するシステムコントローラ１０１と、各機能を処理するブロックとから構成される。
【００２５】
カメラ１００を用いて映像を記録する際、まず撮像手段である撮像部１０２（光学系とその光学系を制御するためのモータ、撮像素子等から構成される）を通過した外光は、撮像素子の面上に光学像を結像し、撮像素子により電気信号に変換される。撮像素子により光電変換された電気信号は、画像音声処理部１０３によりデジタルデータに変換される。
【００２６】
ディレクトリ／ファイル管理部１０４は、記録される画像ファイルのディレクトリとファイル名の管理及び既に記録されている画像ファイルのディレクトリとファイル名を管理する管理手段として機能する。画像音声処理部１０３により変換されたデジタルデータは、ディレクトリ／ファイル管理部１０４により決定された保存先のディレクトリ及びファイル名で記憶媒体インターフェイス１０５を経由して記憶媒体１０６に記録される。記憶媒体１０６はカメラ１００に装着された着脱可能な記憶媒体であり、その装着状態は記憶媒体検出部１０７により検出される。また、デジタルデータは、カメラ１００の内蔵記憶媒体１０８に記録されることもある。
【００２７】
記憶媒体１０６に記録されたデータを再生する際、記憶媒体１０６から記憶媒体インターフェイス１０５を経由して読み出されたデータは、画像音声処理部１０３により表示に最適なデータに変換された後に表示部１０９に表示される。
【００２８】
ユーザは、カメラ１００の操作をユーザ操作部１１１により行うことができる。また、音声出力部１１０は、カメラ１００内部の状態をユーザに知らせるための警告音や映像再生時の音声を出力することができる。同時に警告やカメラの動作状態は表示部１０９にも表示することが可能である。バッテリーの充電制御は、充電池インターフェイス１１２により行うことができる。
【００２９】
次に、図３〜図７を用いて、本実施形態に係るカメラ１００の動作を説明する。図３は、デジタルカメラで作成されたファイル格納規格であるＤＣＦ（ＪＥＩＤＡ規格：Ｄｅｓｉｇｎ Ｒｕｌｅ ｆｏｒ Ｃａｍｅｒａ Ｆｉｌｅ Ｓｙｓｔｅｍ）規格のファイル構成である。デジタルカメラの画像番号は、１００−０００１のように３桁のディレクトリ番号と４桁のファイル番号を組み合わせて管理されている。デジタルカメラでの画像番号の設定方式には、一般的に「通し番号」と「オートリセット」の２種類がある。「通し番号」は、メモリカードを交換しても、最後に撮影した画像の続き番号が次の画像に付けられる。番号が重複しないために画像をパソコンでまとめて管理するときに有効である。一方、「オートリセット」は、メモリカードを交換すると、画像番号を初期値に戻すので、メモリカード単位で分類するとき等に有効である。
【００３０】
デジタルカメラの画像番号の設定方式が「通し番号」に設定されているデジタルカメラにおいて、新しくメモリカードを挿入して撮影をしていく場合を想定して図３のファイル構成が構築されていく過程を説明する。
【００３１】
まず、ユーザ操作部１１１を操作して撮影を行うと、撮像した画像データは画像番号が付されて着脱可能な記憶媒体１０６（以下、メモリカードと呼ぶ）に記録される。このとき、ＤＣＩＭディレクトリがメモリカード１０６内に作成されていなかった場合は、ルートディレクトリ（３００）の直下に「ＤＣＩＭディレクトリ（３０１）」を作成する。また、前回のメモリカード１０６に記録した画像番号が２００−９９９８であったとすると、今回撮影した画像には画像番号２００−９９９９が付される。よって、ディレクトリ番号２００のディレクトリがＤＣＩＭディレクトリ下に存在しない場合は「２００ＡＡＡＡＡ（３０２）」が作成され、このディレクトリ下にファイル番号９９９９の画像ファイル「ＩＭＧ＿９９９９．ＪＰＧ（３０６）」が作成される。
【００３２】
次に、ユーザ操作部１１１を操作して２枚目の撮影を行うと、画像番号２０１−０００１が付される。今回の撮影ではディレクトリ番号が２０１と更新されたので、新しくディレクトリ番号２０１のディレクトリ「２０１ＡＡＡＡＡ（３０３）」が作成される。そして、このディレクトリ「２０１ＡＡＡＡＡ（３０３）」下にファイル番号０００１の画像ファイル「ＩＭＧ＿０００１．ＪＰＧ（３０７）」が作成される。
【００３３】
このように通常の撮影を続けていくと、ファイル番号はインクリメントされながら保存されていき、ファイル番号が９９９９まで達すると次のディレクトリ番号が付された新しいディレクトリが作成される。そして、ファイル番号０００１から再度ファイル番号がインクリメントされながら保存されていく。
【００３４】
ここで、ユーザ操作部１１１からの操作で図５に示すようなメニュー５００を開き、メニュー５００で「フォルダの作成」を選択すると、図６Ａに示すようなメニュー６００が表示される。図６Ａのメニュー６００より「新規作成」の項目にチェックをいれた場合（図６Ｂ）、撮影を行うと、新規ディレクトリ「２０２ＡＡＡＡＡ（３０４）」が作成され、同ディレクトリ下に画像ファイル「ＩＭＧ＿０００１．ＪＰＧ（３０８）」が作成される。
【００３５】
また、図６Ａのメニュー６００より「自動作成／作成時間」で条件を指定した場合（図６Ｃ）、条件の一致によって新規ディレクトリ「２０３ＡＡＡＡＡ（３１０）」が作成される。その後撮影を行うと、同ディレクトリ下に画像ファイル「ＩＭＧ＿０００１．ＪＰＧ（３１１）」が作成される。
【００３６】
ＭＳＣディレクトリ（３０６）下にある「Ｍ０１００．ＣＴＧ（３１０）」は、ＤＣＩＭディレクトリ下に作成されるディレクトリ及びファイルを管理するための管理ファイルである。上記のような操作によりユーザが新規ディレクトリを作成した場合、ユーザにより意図的に作成されたディレクトリであることをこの管理ファイルで管理する。図７に、管理ファイルの一例を示す。管理ファイルは、図７に示すように、作成されたディレクトリ名とそのディレクトリが「フォルダ作成」の設定によって作成されたものか、ファイル番号が上限９９９９まで達したことによって作成されたものかを示すデータから構成される。管理ファイルは、例えばテキストファイルからなる。
【００３７】
このようにして図３に示すようなＤＣＦ規格のファイル構成が構築されていく。しかしながら、構築されたファイル構成では、各ディレクトリに空きがあるにもかかわらず次々とディレクトリ番号が更新され、新しいディレクトリが作成されている。
【００３８】
ここで、第１の実施形態におけるファイル構成の再構築に関して説明を行う。図４に、再構築したファイル構成を示す。再構築を行う際には、ＤＣＩＭディレクトリ直下のディレクトリがどのように作成されたのかを調べ、その作成のされ方によってディレクトリ番号及びファイル番号のつめ方を変える。
【００３９】
まず、「２００ＡＡＡＡＡ（３０２）」は、管理ファイルを調べると、管理データが無く、「フォルダ作成」の設定で作成されたディレクトリではないことがわかる。つまり、同ディレクトリは特にユーザが管理をしようとして意図的に作成されたディレクトリではないので、「２００ＡＡＡＡＡ（３０２）」下のファイルをできるだけ番号の小さいディレクトリにできるだけ小さいファイル番号をつけて保存し直す。「２００ＡＡＡＡＡ（３０２）」は再構築を行う最初のディレクトリであるので、最小のディレクトリ番号１００に変更され「１００ＡＡＡＡＡ（４０２）」となる。「２００ＡＡＡＡＡ（３０２）」下の「ＩＭＧ＿９９９９．ＪＰＧ（３０６）」は、「１００ＡＡＡＡＡ（４０２）」下の最小のファイル番号０００１に変更され「ＩＭＧ＿０００１．ＪＰＧ（４０５）」となる。
【００４０】
次に、「２０１ＡＡＡＡＡ（３０３）」は、管理ファイルを調べると、「２００ＡＡＡＡＡ（３０２）」と同様に管理データが無く、特にユーザが管理をしようとして意図的に作成されたディレクトリではないことがわかる。「１００ＡＡＡＡＡ（４０２）」はまだ空きがあるので、「２０１ＡＡＡＡＡ（３０３）」下の「ファイルＩＭＧ＿０００１．ＪＰＧ（３０７）」は、「１００ＡＡＡＡＡ（４０２）」下に「ＩＭＧ＿０００２．ＪＰＧ（４０６）」として保存されなおす。そして、「２０１ＡＡＡＡＡ（３０３）」は削除される。
【００４１】
次に、「２０２ＡＡＡＡＡ（３０４）」は、管理ファイルを調べると、「新規作成」の設定によって作成されたディレクトリであることがわかる。「新規作成」の設定によって作成されたディレクトリは、ユーザがカテゴリ別に画像ファイルを管理したいとして意図的に作成されるもので、他のディレクトリとは区別して管理する方がユーザにとって利便性がある。そこで、「１００ＡＡＡＡＡ（４０２）」下には空きがあるが、「２０２ＡＡＡＡＡ（３０４）」下のファイルは別ディレクトリとして再構築する。次のディレクトリ番号は１０１であるので、「２０２ＡＡＡＡＡ（３０４）」のディレクトリ番号は１０１に変更され「１０１ＡＡＡＡＡ（４０３）」となる。「２０２ＡＡＡＡＡ（３０４）」下の「ＩＭＧ＿０００１．ＪＰＧ（３０８）」は、「１０１ＡＡＡＡＡ（４０３）」下に「ＩＭＧ＿０００１．ＪＰＧ（４０７）」として保存される。
【００４２】
次に、「２０３ＡＡＡＡＡ（３１０）」は、管理ファイルを調べると、「自動作成／作成時間」の条件設定によって作成されたディレクトリであることがわかる。「自動作成／作成時間」の条件設定によって作成されたディレクトリは、ユーザがカテゴリ別に画像ファイルを管理したいとして意図的に作成されるもので、他のディレクトリとは区別して管理する方がユーザにとって利便性がある。そこで、「１０１ＡＡＡＡＡ（４０３）」下には空きがあるが、「２０３ＡＡＡＡＡ（３１０）」下のファイルは別ディレクトリとして再構築する。次のディレクトリ番号は１０２であるので、「２０３ＡＡＡＡＡ（３１０）」のディレクトリ番号は１０２に変更され「１０２ＡＡＡＡＡ（４０９）」となる。「２０３ＡＡＡＡＡ（３１０）」下の「ＩＭＧ＿０００１．ＪＰＧ（３１１）」は、「１０２ＡＡＡＡＡ（４０９）」下に「ＩＭＧ＿０００１．ＪＰＧ（４１０）」として保存される。
【００４３】
以上のようにして、図３に示すファイル構成が、図４に示すファイル構成に再構築される。すなわち、ディレクトリが意図的に作成されたものである場合には、ディレクトリ下のファイル構成は変えることなく、ディレクトリ番号を最小値から連続した番号に振りなおす（第一の再構築方法）。それに対して、ディレクトリが意図的に作成されたものでない場合には、複数存在するディレクトリに対して、各ディレクトリ下に存在する画像ファイルを、ディレクトリ下に格納できるファイル数の上限数まで統合してディレクトリ数を圧縮するとともに、ディレクトリ番号を最小値から連続した番号に振りなおす（第二の再構築方法）。
【００４４】
次に、図８〜図１３のフローチャートを用いて、ファイル構成を再構築する手順を説明する。図８〜図１３のフローチャートは、システムコントローラ１０１がファイル構成の再構築を実行するためのプログラムに基づいて動作することによって行われる。
【００４５】
まず、ファイル構成を再構築するまでの手順を図８のフローチャートを用いて説明する。ステップＳ１０１で、ＤＣＦ規格のファイル構成の解析を行い、ディレクトリ番号及びファイル番号に空きがあるかどうかを調べる。ディレクトリ番号及びファイル番号に空きがある場合（ステップＳ１０２でＹｅｓ）、ステップＳ１０３に進み、空きがない場合（ステップＳ１０２でＮｏ）、処理を終了する。ステップＳ１０３では、ＤＣＦ規格のファイル構成を再構築する。
【００４６】
ファイル構成の再構築（図８のステップＳ１０３）の手順を図９のフローチャートを用いて説明する。ステップＳ２０１で、ＤＣＩＭディレクトリ下にあるディレクトリ数を取得し変数ｌに代入する。次にステップＳ２０２で、再構築したファイル構成の作成したディレクトリ数、つまりディレクトリ番号を入れる変数ｘに１００を代入して初期化する。次にステップＳ２０３で、ステップＳ２０２と同様に再構築したファイル構成のファイル数、つまりファイル番号を入れる変数ｙに１を代入して初期化する。次にステップＳ２０４で、ディレクトリをカウントするための変数ｉに０を代入して初期化する。
【００４７】
そして、ステップＳ２０５で、カウント数ｉよりディレクトリ数ｌが小さいかどうかを確認する。カウント数ｉがディレクトリ数ｌより小さければステップＳ２０６に進み、カウント数ｉがディレクトリ数ｌ以上であれば処理を終了する。
【００４８】
ステップＳ２０６では、ｉ番目のディレクトリが「フォルダ作成」の設定（図５を参照）によってユーザにより意図的に作成されたものであるかどうかを確認する。ｉ番目のディレクトリが意図的に作成されたものである場合（ステップＳ２０７でＹｅｓ）、ステップＳ２０８に進む。ステップＳ２０８では、ディレクトリ単位で番号をつめてファイル構成を再構築する。一方、ｉ番目のディレクトリが意図的に作成されたものでない場合（ステップＳ２０７でＮｏ）、ステップＳ２０９に進む。ステップＳ２０９では、ファイル単位で番号をつめてファイル構成を再構築する。ステップＳ２０８のディレクトリ単位で番号をつめる処理と、ステップＳ２０９のディレクトリ単位で番号つめる処理の詳細は後述する。
【００４９】
次にステップＳ２１０で、カウント数ｉをインクリメントする。その後、ステップＳ２０５に戻り、カウント数ｉがディレクトリ数ｌより小さければ再度ステップＳ２０６に進み、カウント数ｉがディレクトリ数ｌ以上であれば処理を終了する。
【００５０】
ディレクトリ単位でつめる処理（図９のステップＳ２０８）を図１０のフローチャートを用いて説明する。ここでの変数ｉと変数ｘは、図９のフローチャートで用いた変数ｉと変数ｘと同等のものである。ステップＳ３０１で、ｉ番目のディレクトリの番号を再構築後のファイル構成で次に作成するディレクトリ番号ｘに変更する。次にステップＳ３０２で、変数ｘをインクリメントする。次にステップＳ３０３で、再構築後のファイル構成で次に作成するファイル番号ｙに１を代入する。
【００５１】
ファイル単位でつめる処理（図９のステップＳ２０９）を図１１のフローチャートを用いて説明する。ここでの変数ｉと変数ｙは、図９のフローチャートで用いた変数ｉと変数ｙと同等のものである。ステップＳ４０１で、ｉ番目のディレクトリのファイル数を取得し変数ｍに代入する。次にステップＳ４０２で、カウント数ｊに０を代入して初期化する。次にステップＳ４０３で、カウント数ｊがファイル数ｍより小さいかどうかを確認する。カウント数ｊがファイル数ｍより小さければステップＳ４０４に進み、カウント数ｊがファイル数ｍ以上であれば処理を終了する。
【００５２】
ステップＳ４０４では、再構築後のファイル構成で次に作成するファイル番号ｙが９９９９以下であるかどうかを確認する。ファイル番号ｙが９９９９以下であればステップＳ４０７に進み、ファイル番号ｙが９９９９より大きければステップＳ４０５に進む。ステップＳ４０５では、再構築後のファイル構成で次に作成するディレクトリ番号ｘをインクリメントする。次にステップＳ４０６で、再構築後のファイル構成で次に作成するファイル番号ｙに１を代入し、ステップＳ４０７に進む。
【００５３】
ステップＳ４０７では、ｊ番目のファイル番号を再構築後のファイル構成でディレクトリ番号ｘのディレクトリ下のファイル番号ｙのファイルに変更する。次にステップＳ４０８で、再構築後のファイル構成で次に作成するファイル番号ｙをインクリメントする。次にステップＳ４０９で、カウント数ｊをインクリメントする。その後、ステップＳ４０３に戻り、カウント数ｊがファイル数ｍより小さいかどうかを確認する。カウント数ｊがファイル数ｍより小さければ再度ステップＳ４０４に進み、カウント数ｊがファイル数ｍ以上であれば処理を終了する。
【００５４】
ここで、記録されているディレクトリが全てユーザにより意図的に作成されたものである場合、ディレクトリ単位ではファイル構成を再構築することができない。ディレクトリ番号及びファイル番号が上限に達している場合はこれ以上撮影できなくなってしまうので、ユーザに意図的に作成したディレクトリ構成が崩れてしまうが、ファイル単位でファイル構成を再構築し、撮影可能な状態にするかどうかの確認を促す。その結果、ユーザがファイル単位での再構築を選択した場合はファイル単位での再構築を行う。その手順を図１２のフローチャートを用いて説明する。図１２のフローチャートは、図９のフローチャートにステップＳ５０１〜Ｓ５０７の処理が追加されたものである。ここでは図９のフローチャートで説明した処理の説明は割愛する。
【００５５】
図１２のフローチャートでは、ステップＳ２０４までの変数の初期化が終了した後に、ステップＳ５０１で、ディレクトリ単位でつめることが可能かどうかの確認を行う。ディレクトリ単位でつめられるかどうかを確認する詳しい処理は後述する。ディレクトリ単位でつめることが可能であれば（ステップＳ５０２でＹｅｓ）、ステップＳ２０５に進み、ディレクトリ単位でつめることが不可能であれば（ステップＳ５０２でＮｏ）、ステップＳ５０３に進む。
【００５６】
ステップＳ５０３では、表示部１０９に確認画面を表示し、ユーザにファイル単位でつめるかどうかの確認をさせる。ユーザが「ファイル単位でつめる」を選択した場合（ステップＳ５０４でＹｅｓ）、ステップＳ５０５に進み、ユーザが「ファイル単位でつめない」を選択した場合（ステップＳ５０４でＮｏ）、処理を終了する。
【００５７】
ステップＳ５０５では、カウント数ｉがディレクトリ数ｌより小さいかどうかを確認する。カウント数ｉがディレクトリ数ｌより小さければステップＳ５０６に進み、カウント数ｉがディレクトリ数ｌ以上であれば処理を終了する。ステップＳ５０６では、ファイル単位でファイルをつめてファイル構成を再構築する。次にステップＳ５０７で、カウント数ｉをインクリメントする。その後、ステップＳ５０５に戻り、カウント数ｉがディレクトリ数ｌより小さいかをどうかを確認する。カウント数ｉがディレクトリ数ｌより小さければ再度ステップＳ５０６に進み、カウント数ｉがディレクトリ数ｌ以上であれば処理を終了する。
【００５８】
ディレクトリ単位でつめられるかどうかを確認する処理（図１２のステップＳ５０１）を図１３のフローチャートを用いて説明する。ステップＳ６０１で、ディレクトリ数を取得し変数ｌに代入する。次にステップＳ６０２で、ディレクトリ数ｌが９００であるかどうかを確認する。ディレクトリ数が９００であればステップＳ６０３に進み、ディレクトリ数が９００より小さければステップＳ６１６に進む。ステップＳ６１６では、ディレクトリ単位でつめられるメッセージを返して処理を終了する。
【００５９】
一方、ステップＳ６０３では、カウント数ｊに０を代入して初期化する。次にステップＳ６０４で、ファイル数を保持しておくテンポラリ変数ｔｍｐに０を代入して初期化する。次にステップＳ６０５で、カウント数ｊがディレクトリ数ｌより小さいかどうかを確認する。カウント数ｊがディレクトリ数ｌより小さければステップＳ６０６に進み、カウント数ｊがディレクトリ数ｌ以上であればステップＳ６１７に進む。ステップＳ６１７では、ディレクトリ単位でつめられないメッセージを返して処理を終了する。
【００６０】
一方、ステップＳ６０６では、ｊ番目のディレクトリがユーザにより意図的に作成されたものであるかどうかを確認する。ｊ番目のディレクトリが意図的に作成されたディレクトリであれば（ステップＳ６０７でＹｅｓ）、ステップＳ６０８に進み、意図的に作成されたディレクトリでなければ（ステップＳ６０７でＮｏ）、ステップＳ６０９に進む。ステップＳ６０８では、ファイル数を保持しておくテンポラリ変数ｔｍｐに０を代入する。
【００６１】
一方、ステップＳ６０９では、ｊ番目のディレクトリのファイル数を取得し変数ｍに代入する。次にステップＳ６１０で、ｔｍｐが０であるかどうかを確認する。ｔｍｐが０であればステップＳ６１１に進み、ｔｍｐが０でなければステップＳ６１２に進む。ステップＳ６１１では、変数ｔｍｐをインクリメントする。
【００６２】
一方、ステップＳ６１２でも、変数ｔｍｐをインクリメントする。次にステップＳ６１３で、変数ｔｍｐが９９９９以上であるかどうかを確認する。ｔｍｐが９９９９より大きければステップＳ６１４に進み、ｔｍｐが９９９９以下であればステップＳ６１６に進む。ステップＳ６１６では、ディレクトリ単位でつめられるメッセージを返して処理を終了する。一方、ステップＳ６１４では、変数ｔｍｐにｔｍｐ−９９９９の値を代入する。
【００６３】
ステップＳ６０８、Ｓ６１１、Ｓ６１４の次はステップＳ６１５に進む。ステップＳ６１５では、カウント数ｊをインクリメントする。その後、ステップＳ６０５に戻り、カウント数ｊがディレクトリ数ｌより小さいかどうかを確認する。カウント数ｊがディレクトリ数ｌより小さければ再度ステップＳ６０６に進み、カウント数ｊがディレクトリ数ｌ以上であればステップＳ６１７に進む。ステップＳ６１７では、ディレクトリ単位でつめられないメッセージを返し処理を終了する。
【００６４】
このファイル構成の再構築は、ディレクトリ番号及びファイル番号が上限に達して、撮影途中で記録不可能状態に陥ったときに行うことを想定しているが、他のタイミングでもよい。例えばディレクトリ番号又はファイル番号が一定値以上になったときに行う等様々なタイミングを考えることができる。
【００６５】
以上述べたように、ファイル構成を再構築できるようにしたので、記録媒体の空容量があるにもかかわらず、ファイル作成ができないことで記録継続が困難となる状態が突然に発生することを防止でき、また、撮影途中で記録不能状態に陥っても記録媒体を継続利用可能な状態に復帰させることができる。しかも、ファイル構成を再構築する際に、ディレクトリの情報を調べ、ディレクトリが所定の条件（ユーザにより意図的に作成されたものであるかどうか）に応じて、ファイル構成の再構築方法を切り替えるようにしたので、ディレクトリ番号及びファイル番号の使用効率を良くすることができる。
【００６６】
（第２の実施形態）
図１４は、ＤＣＦ規格に準拠して記録されているＤＣＦディレクトリ及びＤＣＦオブジェクト構成の一例である。ＤＣＦ規格に定められているＤＣＩＭディレクトリ（１１００）直下にはＤＣＦディレクトリ（１１０１〜１１０５）があり、各ＤＣＦディレクトリ（１１０１〜１１０５）下にはＤＣＦオブジェクト（１１０６〜１１２０）がある。図１４において、ディレクトリ番号及びファイル番号が連続しておらず無駄が生じている。
【００６７】
また、各ファイルの記録日時（１１２１〜１１３４）が、図記の通りの日時となっているものとする。ＤＣＦディレクトリ（１１０１）、ＤＣＦディレクトリ（１１０２）、ＤＣＦディレクトリ（１１０４）及びＤＣＦディレクトリ（１１０５）は、各ＤＣＦオブジェクトの記録日時が複数の日付にまたがっている。すなわち、日付別にフォルダ分けされたＤＣＦディレクトリでないことが分かる。一方、ＤＣＦディレクトリ（１１０３）は、同一の記録日付のＤＣＦオブジェクト（１１１２〜１１１４）のみで構成されており、ユーザがＤＣＦディレクトリの自由文字を操作していないが日付別のフォルダ分けを行った可能性があるものとする。
【００６８】
そこで、本実施形態では、ファイル属性としてファイルの記録日付を例にとって、同一ディレクトリ下の全ファイルがファイル属性の同一性、ここでは同一の日付を有する場合にはディレクトリ名をリネームする。同一ディレクトリ下の全ファイルが同一の日付を有していない場合にはディレクトリ名及びファイル名をリネームする。このようなリネーム方法制御により、図１４に示すディレクトリ及びファイル構成で利用者が行った日付別フォルダ分けを維持しながらディレクトリ番号とファイル番号を効率的に使用する例を説明する。
【００６９】
図１５に、再構築したファイル構成を示す。再構築を行う際には、ディレクトリ番号の小さいＤＣＦディレクトリからＤＣＦディレクトリ下のＤＣＦオブジェクトのタイムスタンプを調べていく。その結果、同一ディレクトリ下のＤＣＦオブジェクトが全て同一の記録日付でなければ、ファイル単位でディレクトリ番号及びファイル番号をつめていく。それに対して、同一ＤＣＦディレクトリ下のＤＣＦオブジェクトが全て同一の記録日付であれば、そのディレクトリは日付ごと及びイベントごとに意図してわけられたディレクトリである可能性が高い。したがって、他のディレクトリとは区別して管理するほうがユーザにとって利便性があるので、ディレクトリ単位でディレクトリ番号をつめる。
【００７０】
図１４と図１５において、図１４の「１００ＡＡＡＡＡ（１１０１）」及び「２００ＡＡＡＡＡ（１１０２）」下のＤＣＦオブジェクト（１１０６〜１１１１）のタイムスタンプは同一日付ではない。したがって、ディレクトリ番号を「１００ＡＡＡＡＡ（１２０１）」にひとまとまりにして各ディレクトリのファイル（１１０６〜１１１１）のファイル番号を０００１から付け直す（１２０４〜１２１０）。
【００７１】
「３００ＡＡＡＡＡ（１１０３）」は、ディレクトリ下のＤＣＦオブジェクトのタイムスタンプが同一の日付である。したがって、他のディレクトリとは区別して他のディレクトリのファイルとまとめることはせずに、「３００ＡＡＡＡＡ（１１０３）」のディレクトリ番号のみを、直前のディレクトリ（１２０１）の番号をインクリメントして１０１に設定する。
【００７２】
「４００ＡＡＡＡＡ（１１０４）」下のＤＣＦオブジェクト（１１１５〜１１１７）は同一の記録日付ではない。したがって、「１００ＡＡＡＡＡ（１１０１）」と「２００ＡＡＡＡＡディレクトリ（１１０２）」と同様に一つのディレクトリ（１２０３）にまとめて各ディレクトリのファイルのファイル番号を０００１から付け直す。同様に、「５００ＡＡＡＡＡ（１１０５）」下のＤＣＦオブジェクト（１１１８〜１１２０）は同一のタイムスタンプではないので、上記処理と同様に、直前の「１０２ＡＡＡＡＡ（１２０３）」にＤＣＦオブジェクトを追加する処理を行う。
【００７３】
ここではファイル属性をファイルの記録日時で説明をしたが、例えば読み取り専用フラグをファイル属性として再構築すること等も可能である。
【００７４】
次に、図１６〜図２１のフローチャートを用いて、ファイル構成を再構築する手順を説明する。図１６〜図２１のフローチャートは、システムコントローラ１０１がファイル構成の再構築を実行するためのプログラムに基づいて動作することによって行われる。
【００７５】
まず、ファイル構成を再構築するまでの手順を図１６のフローチャートを用いて説明する。ステップＳ７０１で、ＤＣＦ規格のファイル構成の解析を行い、ディレクトリ番号及びファイル番号に空きがあるかどうかを調べる。ディレクトリ番号及びファイル番号に空きがある場合（ステップＳ７０１でＹｅｓ）、ステップＳ７０３に進み、空きがない場合（ステップＳ７０１でＮｏ）、処理を終了する。ステップＳ７０３では、ＤＣＦ規格のファイル構成を再構築する。
【００７６】
ファイル構成の再構築（図１６のステップＳ７０３）の手順を図１７のフローチャートを用いて説明する。ステップＳ８０１で、ＤＣＩＭディレクトリ下にあるディレクトリ数を取得し変数ｌに代入する。次にステップＳ８０２で、再構築したファイル構成の作成したディレクトリ数、つまりディレクトリ番号を入れる変数ｘに１００を代入して初期化する。次にステップＳ８０３で、ステップＳ８０２と同様に再構築したファイル構成のファイル数、つまりファイル番号を入れる変数ｙに１を代入して初期化する。次にステップＳ８０４で、ディレクトリをカウントするための変数ｉに０を代入して初期化する。
【００７７】
そして、ステップＳ８０５で、カウント数ｉよりディレクトリ数ｌが小さいかどうかを確認する。カウント数ｉがディレクトリ数ｌより小さければステップＳ８０６に進み、カウント数ｉがディレクトリ数ｌ以上であれば処理を終了する。
【００７８】
ステップＳ８０６では、ｉ番目のディレクトリ下のＤＣＦオブジェクトのファイル属性（記録日付）をサーチし、ファイル属性が同一であるかどうかを確認する。ｉ番目のディレクトリ下のＤＣＦオブジェクトのファイル属性が同一である場合（ステップＳ８０７でＹｅｓ）、ステップＳ８０８に進む。ステップＳ８０８では、ディレクトリ単位で番号をつめてファイル構成を再構築する。一方、ｉ番目のディレクトリ下のＤＣＦオブジェクトのファイル属性が同一でない場合（ステップＳ８０７でＮｏ）、ステップＳ８０９に進む。ステップＳ８０９では、ファイル単位で番号をつめてファイル構成を再構築する。ステップＳ８０８のディレクトリ単位でつめる処理と、ステップＳ８０９のディレクトリ単位でつめる処理の詳細は後述する。
【００７９】
次にステップＳ８１０で、カウント数ｉをインクリメントする。その後、ステップＳ８０５に戻り、カウント数ｉがディレクトリ数ｌより小さければ再度ステップＳ８０６に進み、カウント数ｉがディレクトリ数ｌ以上であれば処理を終了する。
【００８０】
ディレクトリ単位でつめる処理（図１７のステップＳ８０８）を図１８のフローチャートを用いて説明する。ここでの変数ｉと変数ｘは、図１７のフローチャートで用いた変数ｉと変数ｘと同等のものである。ステップＳ９０１で、ｉ番目のディレクトリの番号を再構築後のファイル構成で次に作成するディレクトリ番号ｘに変更する。次にステップＳ９０２で、変数ｘをインクリメントする。次にステップＳ９０３で、再構築後のファイル構成で次に作成するファイル番号ｙに１を代入する。
【００８１】
ファイル単位でつめる処理（図１７のステップＳ８０９）を図１９のフローチャートを用いて説明する。ここでの変数ｉと変数ｙは、図１７のフローチャートで用いた変数ｉと変数ｙと同等のものである。ステップＳ１００１で、ｉ番目のディレクトリのファイル数を取得し変数ｍに代入する。次にステップＳ１００２で、カウント数ｊに０を代入して初期化する。次にステップＳ１００３で、カウント数ｊがファイル数ｍより小さいかどうかを確認する。カウント数ｊがファイル数ｍより小さければステップＳ１００４に進み、カウント数ｊがファイル数ｍ以上であれば処理を終了する。
【００８２】
ステップＳ１００４では、再構築後のファイル構成で次に作成するファイル番号ｙが９９９９以下であるかどうかを確認する。ファイル番号ｙが９９９９以下であればステップＳ１００７に進み、ファイル番号ｙが９９９９より大きければステップＳ１００５に進む。ステップＳ１００５では、再構築後のファイル構成で次に作成するディレクトリ番号ｘをインクリメントする。次にステップＳ１００６で、再構築後のファイル構成で次に作成するファイル番号ｙに１を代入し、ステップＳ１００７に進む。
【００８３】
ステップＳ１００７では、ｊ番目のファイル番号を再構築後のファイル構成でディレクトリ番号ｘのディレクトリ下のファイル番号ｙのファイルに変更する。次にステップＳ１００８で、再構築後のファイル構成で次に作成するファイル番号ｙをインクリメントする。次にステップＳ１００９で、カウント数ｊをインクリメントする。その後、ステップＳ１００３に戻り、カウント数ｊがファイル数ｍより小さいかどうかを確認する。カウント数ｊがファイル数ｍより小さければ再度ステップＳ１００４に進み、カウント数ｊがファイル数ｍ以上であれば処理を終了する。
【００８４】
ここで、記録されている全てのディレクトリ下のＤＣＦオブジェクトのタイムスタンプが全て同一の記録日付であった場合、ディレクトリ単位ではファイル構成を再構築することができない。ディレクトリ番号及びファイル番号が上限に達している場合はこれ以上撮影できなくなってしまうので、ユーザに日付ごとに分けたディレクトリ構成が崩れてしまうが、ファイル単位でファイル構成を再構築し、撮影可能な状態にするかどうかの確認を促す。その結果、ユーザがファイル単位での再構築を選択した場合はファイル単位での再構築を行う。その手順を図２０のフローチャートを用いて説明する。図２０のフローチャートは、図１７のフローチャートにステップＳ１１０１〜Ｓ１１０７の処理が追加されたものである。ここで図１７のフローチャートで説明した処理の説明は割愛する。
【００８５】
図２０のフローチャートでは、ステップＳ８０４までの変数の初期化が終了した後に、ステップＳ１１０１で、ディレクトリ単位でつめることが可能かどうかの確認を行う。ディレクトリ単位でつめられるかどうかを確認する詳しい処理は後述する。ディレクトリ単位でつめることが可能であれば（ステップＳ１１０２でＹｅｓ）、ステップＳ８０５に進み、ディレクトリ単位でつめることが不可能であれば（ステップＳ１１０２でＮｏ）、ステップＳ１１０３に進む。
【００８６】
ステップＳ１１０３では、表示部１０９に確認画面を表示し、ユーザにファイル単位でつめるかどうかの確認をさせる。ユーザが「ファイル単位でつめる」を選択した場合（ステップＳ１１０４でＹｅｓ）、ステップＳ１１０５に進み、ユーザが「ファイル単位でつめない」を選択した場合（ステップＳ１１０４でＮｏ）、処理を終了する。
【００８７】
ステップＳ１１０５では、カウント数ｉがディレクトリ数ｌより小さいかどうかを確認する。カウント数ｉがディレクトリ数ｌより小さければステップＳ１１０６に進み、カウント数ｉがディレクトリ数ｌ以上であれば処理を終了する。ステップＳ１１０６では、ファイル単位でファイルをつめてファイル構成を再構築する。次にステップＳ１１０７で、カウント数ｉをインクリメントする。その後、ステップＳ１１０５に戻り、カウント数ｉがディレクトリ数ｌより小さいかどうかを確認する。カウント数ｉがディレクトリ数ｌより小さければ再度ステップＳ１１０６に進み、カウント数ｉがディレクトリ数ｌ以上であれば処理を終了する。
【００８８】
ディレクトリ単位でつめられるかどうかを確認する処理（図２０のステップＳ１１０１）を図２１のフローチャートを用いて説明する。ステップＳ１２０１で、ディレクトリ数を取得し変数ｌに代入する。次にステップＳ１２０２で、ディレクトリ数ｌが９００であるかどうかを確認する。ディレクトリ数が９００であればステップＳ１２０３に進み、ディレクトリ数が９００より小さければステップＳ１２１６に進む。ステップＳ１２１６では、ディレクトリ単位でつめられるメッセージを返して処理を終了する。
【００８９】
一方、ステップＳ１２０３では、カウント数ｊに０を代入して初期化する。次にステップＳ１２０４で、ファイル数を保持しておくテンポラリ変数ｔｍｐに０を代入して初期化する。次にステップＳ１２０５で、カウント数ｊがディレクトリ数ｌより小さいかどうかを確認する。カウント数ｊがディレクトリ数ｌより小さければステップＳ１２０６に進み、カウント数ｊがディレクトリ数ｌ以上であればステップＳ１２１７に進む。ステップＳ１２１７では、ディレクトリ単位でつめられないメッセージを返して処理を終了する。
【００９０】
一方、ステップＳ１２０６では、ｊ番目のディレクトリ下の全ＤＣＦオブジェクトが同一の記録日付であるかどうかを確認する。ｊ番目のディレクトリ下の全ＤＣＦオブジェクトが同一の記録日付であれば（ステップＳ１２０７でＹｅｓ）、ステップＳ１２０８に進む。ｊ番目のディレクトリ下の全ＤＣＦオブジェクトが同一の記録日付でなければ（ステップＳ１２０７でＮｏ）、ステップＳ１２０９に進む。ステップＳ１２０８では、ファイル数を保持しておくテンポラリ変数ｔｍｐに０を代入する。
【００９１】
一方、ステップＳ１２０９では、ｊ番目のディレクトリのファイル数を取得し変数ｍに代入する。次にステップＳ１２１０で、ｔｍｐが０であるかどうかを確認する。ｔｍｐが０であればステップＳ１２１１に進み、ｔｍｐが０でなければステップＳ１２１２に進む。ステップＳ１２１１では、変数ｔｍｐをインクリメントする。
【００９２】
一方、ステップＳ１２１２でも、変数ｔｍｐをインクリメントする。次にステップＳ１２１３で、変数ｔｍｐが９９９９以上であるかどうかを確認する。ｔｍｐが９９９９より大きければステップＳ１２１４に進み、ｔｍｐが９９９９以下であればステップＳ１２１６に進む。ステップＳ１２１６では、ディレクトリ単位でつめられるメッセージを返して処理を終了する。一方、ステップＳ１２１４では、変数ｔｍｐにｔｍｐ−９９９９の値を代入する。
【００９３】
ステップＳ１２０８、Ｓ１２１１、Ｓ１２１４の次はステップＳ１２１５に進む。ステップＳ１２１５では、カウント数ｊをインクリメントする。その後、ステップＳ１２０５に戻り、カウント数ｊがディレクトリ数ｌより小さいかどうかを確認する。カウント数ｊがディレクトリ数ｌより小さければ再度ステップＳ１２０６に進み、カウント数ｊがディレクトリ数ｌ以上であればステップＳ１２１７に進む。ステップＳ１２１７では、ディレクトリ単位でつめられないメッセージを返し処理を終了する。
【００９４】
このファイル構成の再構築は、ディレクトリ番号及びファイル番号が上限に達して、撮影途中で記録不可能状態に陥ったときに行うことを想定しているが、他のタイミングでもよい。例えばディレクトリ番号又はファイル番号が一定値以上になったときに行う等様々なタイミングを考えることができる。
【００９５】
以上述べたように、ファイル構成を再構築できるようにしたので、記録媒体の空容量があるにもかかわらず、ファイル作成ができないことで記録継続が困難となる状態が突然に発生することを防止でき、また、撮影途中で記録不能状態に陥っても記録媒体を継続利用可能な状態に復帰させることができる。しかも、ファイル構成を再構築する際に、ディレクトリの情報を調べ、ディレクトリが所定の条件（ディレクトリ下の全ファイルがファイル属性の同一性を有するかどうか）に応じて、ファイル構成の再構築方法を切り替えるようにしたので、ディレクトリ番号及びファイル番号の使用効率を良くすることができる。
【００９６】
なお、本発明の目的は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給することによっても達成される。この場合、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行する。
【００９７】
この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９８】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００９９】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけに限らない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（基本システム或いはオペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現されてもよい。
【０１００】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる形態でもよい。この場合メモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される。
【符号の説明】
【０１０１】
１００：デジタルカメラ、１０１：システムコントローラ、１０２：撮像部、１０３：画像音声処理部、１０４：ディレクトリ／ファイル管理部、１０５：着脱可能記憶媒体インターフェイス、１０６：着脱可能記憶媒体、１０７：着脱記憶媒体検出部、１０８：内蔵記憶媒体、１０９：表示部、１１０：音声出力部、１１１：ユーザ操作部、１１２：充電池インターフェイス
【図１】
2010250602.tif 000003
【図２】
2010250602.tif 000004
【図３】
2010250602.tif 000005
【図４】
2010250602.tif 000006
【図５】
2010250602.tif 000007
【図６Ａ】
2010250602.tif 000008
【図６Ｂ】
2010250602.tif 000009
【図６Ｃ】
2010250602.tif 000010
【図７】
2010250602.tif 000011
【図８】
2010250602.tif 000012
【図９】
2010250602.tif 000013
【図１０】
2010250602.tif 000014
【図１１】
2010250602.tif 000015
【図１２】
2010250602.tif 000016
【図１３】
2010250602.tif 000017
【図１４】
2010250602.tif 000018
【図１５】
2010250602.tif 000019
【図１６】
2010250602.tif 000020
【図１７】
2010250602.tif 000021
【図１８】
2010250602.tif 000022
【図１９】
2010250602.tif 000023
【図２０】
2010250602.tif 000024
【図２１】
2010250602.tif 000025