(57)【要約】【課題】  異常時にしか必要とならない情報を記録媒体に記録することなく、その記録媒体中のファイル更新中の異常に対応した復元を可能にするファイル更新装置を提供する。【解決手段】  着脱可能な記録媒体３６０中のファイルを複数の更新手順を経て更新するファイル更新装置は、どの更新手順まで実施済みであるかを示す処理ステータス３４５等を、補助電源３５０が電力供給するＲＡＭ３４０に記録する機能を有し、ファイルを更新する場合には、新たに更新後のファイルデータを記録媒体３６０に記録し、更新後のファイルデータの格納位置をＲＡＭ３４０中のメインＦＡＴ３４１等に記録し、その後にメインＦＡＴ３４１等に基づき更新後ファイル位置を示すように記録媒体３６０中のＦＡＴ３６３等を更新する。更新手順が主電源３２０の電源断等により異常停止した場合でもＲＡＭには処理ステータス等が残るため、これに基づきＦＡＴの再更新等が可能となる。【選択図】  図５
2004157997.tif 000002
【特許請求の範囲】
【請求項１】
ファイル内容を構成するデータの第１記録媒体中の格納位置を示す位置情報を記録してある第１記録媒体を着脱可能であり、第１記録媒体中のファイルを複数の更新手順を経て更新するファイル更新装置であって、
第２記録媒体と、
どの更新手順まで実施済みであるかを示す進行情報を第２記録媒体中に記録する進行記録手段と、
更新前のファイル内容を構成するデータとは別に、更新後のファイル内容を構成するデータを第１記録媒体中に記録する新データ記録手段と、
前記新データ記録手段により記録された更新後のファイル内容を構成するデータについての第１記録媒体中の格納位置を示す更新情報を第２記録媒体中に記録する更新情報記録手段と、
更新後のファイル内容を構成するデータについて前記更新情報記録手段により更新情報が記録された後に、当該更新情報に基づいて、当該データについての第１記録媒体中の格納位置を示すように、当該ファイルの更新前の内容を構成するデータの格納位置を示している第１記録媒体中の位置情報を更新する位置情報更新手段とを備える
ことを特徴とするファイル更新装置。
【請求項２】
前記進行記録手段が記録する進行情報は、更新後のファイル内容を構成するデータについて前記更新情報が記録された後であるか否かを識別可能な情報であり、
前記ファイル更新装置は、更に、
所定条件が満たされた場合に、更新後のファイル内容を構成するデータについて更新情報が記録された後であるか否かを進行情報に基づき判定し、判定結果が肯定的なときには、当該更新情報に基づいて、当該データについての第１記録媒体中の格納位置を示すように第１記録媒体中の位置情報を更新する再更新手段を備える
ことを特徴とする請求項１記載のファイル更新装置。
【請求項３】
前記ファイル更新装置は、更に、
第１記録媒体中のファイルの更新前に、第１記録媒体から固有の媒体識別情報を読み出して自装置内に保持する媒体識別情報記録手段と、
自装置に装着されている記録媒体の媒体識別情報を読み出して、その読み出した媒体識別情報と前記保持している媒体識別情報とを照合して両者が不一致の場合には、前記再更新手段による位置情報の更新を抑止する再更新抑止手段とを備える
ことを特徴とする請求項２記載のファイル更新装置。
【請求項４】
前記ファイル更新装置は、第１記録媒体中の複数のファイルを更新対象とし、
前記第１記録媒体中の位置情報は、第１記録媒体中の全ファイルについてのファイル内容を構成するデータの格納位置を示し、
前記進行記録手段は、更新対象とされたファイル毎に進行情報を記録し、
前記新データ記録手段は、更新対象とされた複数のファイルそれぞれについて、更新後の当該ファイルの内容を構成するデータの第１記録媒体中への記録を行い、
前記更新情報記録手段は、前記新データ記録手段により記録された更新後のファイルそれぞれについて、対応する更新情報の記録を行い、
前記位置情報更新手段は、前記更新情報記録手段により更新情報が記録されたところの各ファイルについての更新情報に基づいて、第１記録媒体中の位置情報の更新を行い、
前記再更新手段は、前記所定条件が満たされた場合に、複数のファイルそれぞれについて、対応する進行情報に基づいて、更新後の当該ファイルに対応する更新情報が記録された後であると判定できるならば、当該ファイルに係る更新情報に基づいて、第１記録媒体中の位置情報を更新する
ことを特徴とする請求項２記載のファイル更新装置。
【請求項５】
前記ファイル更新装置は、更に、前記新データ記録手段によりデータの記録がなされたファイルについてのクローズ指示を取得するクローズ指示取得手段を備え、
前記進行記録手段が記録する進行情報は、ファイルについてクローズ指示が取得された後であるか否かも識別可能な情報であり、
前記位置情報更新手段は、更新後のファイル内容を構成するデータについて前記更新情報が記録された後であってかつ前記クローズ指示取得手段により当該ファイルについてのクローズ指示が取得された後に限り、当該ファイルに係る更新情報に基づいて、第１記録媒体中の位置情報の更新を行い、
前記再更新手段は、前記所定条件が満たされた場合に、複数のファイルそれぞれについて、対応する進行情報に基づいて、更新後の当該ファイルに対応する更新情報が記録された後であってかつクローズ指示が取得された後であると判定できるときに限って、当該ファイルに係る更新情報に基づいて、第１記録媒体中の位置情報を更新する
ことを特徴とする請求項４記載のファイル更新装置。
【請求項６】
前記第１記録媒体には、
第１記録媒体中のクラスタ毎に当該クラスタにいずれかのファイル内容を構成するデータが格納されているか否かを示し、かつ、同一ファイルの内容を構成するデータが格納されるクラスタ間に繋がりがあることを示すＦＡＴ情報と、
第１記録媒体中のファイル毎についての、当該ファイル内容を構成するデータの先頭が格納されるクラスタを示すディレクトリ情報とが記録されており、
前記第１記録媒体中の位置情報は、前記ＦＡＴ情報のうち、いずれのファイル内容を構成するデータも格納されていないクラスタを示す部分である未使用クラスタ情報を除くものと、前記ディレクトリ情報とから構成されており、
前記更新情報記録手段が記録するファイルそれぞれについての前記更新情報は、前記新データ記録手段により記録された更新後の当該ファイルの内容を構成するデータが格納された第１記録媒体中のクラスタ間に繋がりがあることを示す連続関係情報と、更新後の当該ファイルの内容を構成するデータの先頭が格納されるクラスタを示すエントリ情報とから構成され、
前記位置情報更新手段は、前記更新情報記録手段により更新情報が記録されたところの各ファイルについて、
当該ファイルの内容を構成するデータに係る連続関係情報に基づいて、前記新データ記録手段により記録された更新後の当該ファイル内容を構成するデータが格納されたクラスタ間に繋がりがあることを示すようにＦＡＴ情報を更新し、かつ、
当該ファイルに係るエントリ情報に基づいて、更新後の当該ファイル内容を構成するデータの先頭が格納されるクラスタを示すように当該ファイルについてのディレクトリ情報を更新し、
前記再更新手段は、更新情報中の連続関係情報に基づいてＦＡＴ情報を更新し、かつ、更新情報中のエントリ情報に基づいてディレクトリ情報を更新することにより、位置情報を更新する
ことを特徴とする請求項４記載のファイル更新装置。
【請求項７】
前記ファイル更新装置は、更に、
前記更新情報記録手段による更新後のファイル内容を構成するデータについての更新情報の記録後に、当該ファイルの更新前の内容を構成するデータが格納されていた第１記録媒体中のクラスタには、いずれかのファイル内容を構成するデータが格納されていないことを示す未使用情報を第２記録媒体に記録する未使用領域解放手段を備え、
前記位置情報更新手段は、ＦＡＴ情報の更新を、前記未使用領域解放手段により記録された未使用情報を未使用クラスタ情報に反映するように行い、
前記再更新手段は、ＦＡＴ情報の更新を、前記未使用情報を未使用クラスタ情報に反映するように行う
ことを特徴とする請求項６記載のファイル更新装置。
【請求項８】
前記ファイル更新装置は、更に、
全てのファイルの更新前に第１記録媒体中のＦＡＴ情報を第２記録媒体中の領域である作業ＦＡＴ領域に作業ＦＡＴ情報として複写するＦＡＴ複写手段と、
前記新データ記録手段によりデータの記録がなされたファイルについてのクローズ指示を取得するクローズ指示取得手段とを備え、
前記進行記録手段が記録する進行情報は、ファイルについてクローズ指示が取得された後であるか否かも識別可能な情報であり、
前記新データ記録手段は、未使用情報又は全ての連続関係情報と、作業ＦＡＴ情報とに基づいて、更新後のファイルを構成するデータを、既に更新後の他のファイル内容を構成するデータが記録されているクラスタ以外のクラスタに記録し、
前記更新情報記録手段は更に、取得されたクローズ指示に係るファイルについての連続関係情報を作業ＦＡＴ情報に反映させ、当該ファイルの更新前の内容を構成するデータが格納されていた第１記録媒体中のクラスタにはいずれかのファイル内容を構成するデータが格納されていないことを示す未使用情報をも作業ＦＡＴ情報に反映させ、
前記位置情報更新手段は、前記作業ＦＡＴ情報に基づいてＦＡＴ情報を更新し、
前記再更新手段は、前記所定条件が満たされた場合に、(a)複数のファイルそれぞれについて、対応する進行情報に基づいて、当該ファイルについてのクローズ指示が取得された後であると判定できるときには、当該ファイルに係る連続関係情報及び未使用情報を作業ＦＡＴ情報に反映させ、(b)作業ＦＡＴ情報に基づいてＦＡＴ情報を更新し、(c)対応する進行情報が、当該ファイルについてのクローズ指示が取得されたことを示すところの全てのファイルについてのエントリ情報に基づいてディレクトリ情報を更新する
ことを特徴とする請求項７記載のファイル更新装置。
【請求項９】
前記ファイル更新装置は、更に、
再更新に際して、更新後のファイル内容を構成するデータが第１記録媒体に記録されている場合においては当該データの格納位置を示すように位置情報を更新すべきである旨を示す指示を取得する更新反映指示取得手段を備え、
前記再更新手段は、前記所定条件が満たされた場合でありかつ前記更新反映指示取得手段により指示が取得されている場合においては、作業ＦＡＴ情報に基づくＦＡＴ情報の前記更新の前に、更に複数のファイルそれぞれについて、対応する進行情報に基づいて、更新後の当該ファイル内容を構成するデータに対応する更新情報が記録された後であると判定できるときにも、当該ファイルに係る連続関係情報及び未使用情報を作業ＦＡＴ情報に反映させる
ことを特徴とする請求項８記載のファイル更新装置。
【請求項１０】
前記第１記録媒体は、相互に独立し、所定のアクセス制限が設けられた認証領域と、当該アクセス制限が設けられていない通常領域とから構成され、
第１記録媒体中の位置情報は、認証領域内の各ファイル内容を構成するデータの当該認証領域内での格納位置を示す第１位置情報と、通常領域内の各ファイル内容を構成するデータの当該通常領域内での格納位置を示す第２位置情報とから構成され、
前記進行記録手段が記録する進行情報は、認証領域内のファイルの更新がどの更新手順まで実施済みであるかを示す第１進行情報と、通常領域内のファイルの更新がどの更新手順まで実施済みであるかを示す第２進行情報とから構成され、
前記新データ記録手段は、認証領域内のファイルについては更新前のファイル内容を構成するデータとは別に、更新後の当該ファイル内容を構成するデータを認証領域内に記録し、通常領域内のファイルについては更新前のファイル内容を構成するデータとは別に、更新後の当該ファイル内容を構成するデータを通常領域内に記録し、
前記更新情報記録手段が記録する更新情報は、前記新データ記録手段により認証領域内に記録された更新後のファイル内容を構成するデータについての当該認証領域内での格納位置を示す第１更新情報と、前記新データ記録手段により通常領域内に記録された更新後のファイル内容を構成するデータについての当該通常領域内での格納位置を示す第２更新情報とから構成され、
前記位置情報更新手段は、
更新後のファイル内容を構成するデータについて前記更新情報記録手段により第１更新情報が記録された後に、当該第１更新情報を参照して、当該データについての認証領域内での格納位置を示すように、当該ファイルの更新前の内容を構成するデータの格納位置を示している第１位置情報を更新し、更新後のファイル内容を構成するデータについて前記更新情報記録手段により第２更新情報が記録された後に、当該第２更新情報を参照して、当該データについての通常領域内での格納位置を示すように、当該ファイルの更新前の内容を構成するデータの格納位置を示している第２位置情報を更新する
ことを特徴とする請求項１記載のファイル更新装置。
【請求項１１】
前記第１記録媒体は、フラッシュメモリであり、
前記第２記録媒体は、第１記録媒体より高速アクセス可能なメモリである
ことを特徴とする請求項１記載のファイル更新装置。
【請求項１２】
前記第２記録媒体は、ＲＡＭであり、第１記録媒体の電源とは独立した電源から電力が供給される
ことを特徴とする請求項１１記載のファイル更新装置。
【請求項１３】
ファイル内容を構成するデータの第１記録媒体中の格納位置を示す位置情報を記録してある第１記録媒体におけるファイルを複数の更新手順を経て更新するファイル更新方法であって、
どの更新手順まで実施済みであるかを示す進行情報を第２記録媒体中に記録する進行記録ステップと、
更新前のファイル内容を構成するデータとは別に、更新後のファイル内容を構成するデータを第１記録媒体中に記録する新データ記録ステップと、
前記新データ記録ステップにより記録された更新後のファイル内容を構成するデータについての第１記録媒体中の格納位置を示す更新情報を第２記録媒体中に記録する更新情報記録ステップと、
更新後のファイル内容を構成するデータについて前記更新情報記録ステップにより更新情報が記録された後に、当該更新情報に基づいて、当該データについての第１記録媒体中の格納位置を示すように、当該ファイルの更新前の内容を構成するデータの格納位置を示している第１記録媒体中の位置情報を更新する位置情報更新ステップとを含む
ことを特徴とするファイル更新方法。
【請求項１４】
前記進行記録ステップにおいて記録する進行情報は、更新後のファイル内容を構成するデータについて前記更新情報が記録された後であるか否かを識別可能な情報であり、
前記ファイル更新方法は、更に、
所定条件が満たされた場合に、更新後のファイル内容を構成するデータについて更新情報が記録された後であるか否かを進行情報に基づき判定し、判定結果が肯定的なときには、当該更新情報に基づいて、当該データについての第１記録媒体中の格納位置を示すように第１記録媒体中の位置情報を更新する再更新ステップを含む
ことを特徴とする請求項１３記載のファイル更新方法。
【請求項１５】
ファイル内容を構成するデータの第１記録媒体中の格納位置を示す位置情報を記録してある第１記録媒体におけるファイルを、複数の更新手順を経て更新するファイル更新処理を、ＣＰＵを含む装置に実行させるためのプログラムであって、
前記ファイル更新処理は、
どの更新手順まで実施済みであるかを示す進行情報を前記装置に内蔵された第２記録媒体中に記録する進行記録ステップと、
更新前のファイル内容を構成するデータとは別に、更新後のファイル内容を構成するデータを第１記録媒体中に記録する新データ記録ステップと、
前記新データ記録ステップにより記録された更新後のファイル内容を構成するデータについての第１記録媒体中の格納位置を示す更新情報を第２記録媒体中に記録する更新情報記録ステップと、
更新後のファイル内容を構成するデータについて前記更新情報記録ステップにより更新情報が記録された後に、当該更新情報に基づいて、当該データについての第１記録媒体中の格納位置を示すように、当該ファイルの更新前の内容を構成するデータの格納位置を示している第１記録媒体中の位置情報を更新する位置情報更新ステップとを含む
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリ等といった記録媒体に格納されたファイルを更新する技術に関し、特に更新が途中で停止した場合に発生する、ファイル構成データの格納状態とファイルの管理情報との論理的な不整合を、解消するための技術に関する。
【背景技術】
【０００２】
従来、半導体メモリ、磁気ディスク、光磁気ディスク等の記録媒体中の記録領域に格納されたデータの管理は、ファイルシステムにより実現されている。ファイルシステムでは、記録領域を、物理的な最小アクセス単位であるセクタの集合であるクラスタに分割して、１以上のクラスタに記録されるデータをファイルとして管理する。なお、ファイルシステムにより管理がなされた記録媒体におけるファイルは、同一のファイルシステムに対応した機器間で授受され得る。
【０００３】
以下、従来のファイルシステムの１つであるＦＡＴファイルシステムについて説明する。
ＦＡＴファイルシステムはパーソナルコンピュータ（ＰＣ）等の情報処理装置で一般に用いられているファイルシステムであり、ファイルを構成するデータの物理的な格納位置をＦＡＴ（File Allocation Table）と呼ばれるテーブルにより管理するという特徴を持つ。
【０００４】
図１は、あるＦＡＴファイルシステムにおける記憶領域内のデータ構造を示す図である。
図１に示すＦＡＴファイルシステムでは、記録媒体中の記録領域を論理アドレスに従って見た場合の先頭に、記録領域を管理するために管理情報領域１００を設けてある。なお、その記録領域中において、ファイルを構成するデータ等を格納するためのデータ領域１１０は管理情報領域１００の後方に位置付けられている。
【０００５】
管理情報領域１００は、記録領域を複数のパーティションと呼ばれる領域に分割して管理するための情報を格納するマスターブートレコード・パーティションテーブル１０１と、１つのパーティション内の管理情報を格納するパーティションブートセクタ１０２と、ファイルに含まれるデータの物理的な格納位置を示すＦＡＴ１０３及びＦＡＴ１０４と、ルートディレクトリ直下に存在するファイル又はディレクトリの情報を格納するルートディレクトリエントリ１０５とから構成される。なお、ＦＡＴ１０３及びＦＡＴ１０４は、ファイルに含まれるデータの物理的な格納位置を示す重要な領域であることから二重化されており、同内容となっている。
【０００６】
データ領域１１０は、クラスタに分割され管理されており、各クラスタにはファイルを構成するデータが格納されている。１クラスタより多い量のデータで構成されるファイルについては、その構成データを複数のクラスタに分けて格納しており、ファイルに対応する各クラスタ間のつながりは、ＦＡＴ１０３及びＦＡＴ１０４に格納されたリンク情報により管理されている。
【０００７】
なお、ＦＡＴファイルシステムについては、ＩＳＯ／ＩＥＣ９２９３、“Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ−Ｖｏｌｕｍｅ  ａｎｄ  ｆｉｌｅ  ｓｔｒｕｃｔｕｒｅ  ｏｆ  ｄｉｓｋｃａｒｔｒｉｄｇｅｓ  ｆｏｒ  ｉｎｆｏｒｍａｔｉｏｎ ｉｎｔｅｒｃｈａｎｇｅ”（１９９４年）等に詳しく説明されている。
図２は、ファイルの管理情報であるディレクトリエントリを示す図であり、図３は、ＦＡＴを示す図であり、図４は、ファイル内容を構成するデータを示す図である。
【０００８】
以下、図２〜図４を用いて、ＦＡＴファイルシステムにおけるディレクトリエントリとファイルを構成するデータとの関係について説明する。
ルートディレクトリエントリやデータ領域の一部には、図２に示すような、ファイル名やファイルサイズ等の１ファイルについての管理情報であるディレクトリエントリ２０１が格納される。
【０００９】
ファイルを構成するデータの格納先であるデータ領域はクラスタ単位で管理されており、各クラスタには一意に識別可能なクラスタ番号が付与されている。ファイルを構成するデータが格納されているクラスタを特定するために、ディレクトリエントリ２０１には、ファイルを構成するデータの先頭部分が格納されているクラスタのクラスタ番号（開始クラスタ番号）が、ファイル名及びファイルサイズとともに格納されている。
【００１０】
図２に例示するディレクトリエントリ２０１は、ＦＩＬＥ１．ＴＸＴというファイル名と、１０という開始クラスタ番号と、６０キロバイト（ＫＢ）というファイルサイズとから構成されている。これは、ＦＩＬＥ１．ＴＸＴという名前のファイルを構成するデータの先頭は１０番のクラスタに格納されており、ファイル内容を構成する全データのサイズの合計は６０キロバイトであることを示している。
【００１１】
複数のクラスタにデータが格納されているファイルの場合における、開始クラスタ番号で示されるクラスタに後続するクラスタの番号を特定するための情報は、ＦＡＴ上のリンク情報である。
図３に示すＦＡＴ２０２には、各クラスタ番号に対応したフィールドであるＦＡＴエントリが設けられており、各ＦＡＴエントリには、対応するクラスタがファイル内容を構成するデータとして使用されているかいないかの別と、使用されている場合には、同一ファイル内容を構成するデータが記録されているところの後続先となるクラスタの番号が格納される。なお、ＦＡＴエントリには、対応するクラスタに後続先のクラスタがない場合には終端を意味する値として、例えば０ｘＦＦＦが、格納される。
【００１２】
図３の例では、１０番のクラスタに対応するＦＡＴエントリに１１が格納されているため、１０番のクラスタは、１１番のクラスタにリンクしていることになる。同様に１１番のクラスタに対応するＦＡＴエントリには１２が、１２番のクラスタに対応するＦＡＴエントリには１３がそれぞれ格納されており、１０番、１１番、１２番、１３番のクラスタがこの順にリンクされていることになる。次に１３番のクラスタに対応するＦＡＴエントリには０ｘＦＦＦが格納されているが、０ｘＦＦＦはリンクの終端を意味していることから、１０番のクラスタから始まるリンクは、１３番のクラスタまでで終了することになる。
【００１３】
また、１４番のクラスタに対応するＦＡＴエントリに格納されている０は、そのクラスタがファイルを構成するデータとして割り当てられておらず、空き領域であることを意味している。
図４では、図２及び図３で例示したＦＩＬＥ１．ＴＸＴという名前のファイルを構成するデータが、４つのクラスタに分割されたデータ１、データ２、データ３及びデータ４であることを示している。
【００１４】
次に、ＦＡＴファイルシステムにおけるファイル内容の更新について説明する。
ファイル内容を更新するためには、記録媒体にファイルを構成する新たなデータを書き込むとともに、ディレクトリエントリ、ＦＡＴ１、ＦＡＴ２の情報を書き換える必要がある。ファイル内容を更新中である情報処理装置の電源が遮断される等により、更新が途中で停止してしまった場合には、ディレクトリエントリ、ＦＡＴ１又はＦＡＴ２と実際のファイルを構成するデータの状態とに不整合が生じ、ファイルの格納位置を正しく認識することができず、ファイルにアクセスすることができなくなる。
【００１５】
従来、ファイルの更新の途中における情報処理装置の電源遮断の発生等により、そのファイルの更新が途中で停止した場合に、ファイルに関する上述の不整合を解消する方法として、次に情報処理装置が起動した際に、ファイル復旧処理を実施する方法が提案されている（例えば、特許文献１参照。）。
従来のファイル復旧処理を実施する方法では、記録媒体中のファイルの更新に際しての旧ファイル内容と新ファイル内容との並存状態において、新ファイル内容と整合するようにディレクトリエントリ、ＦＡＴ１、ＦＡＴ２を更新する手順をＦＡＴ１、ディレクトリエントリ、ＦＡＴ２の順に定め、処理が完了した手順を示すフラグ等の復旧用情報をその記録媒体の特定位置に記録する。この復旧用情報を元に、ＦＡＴ１の更新途中で処理が停止していた場合には、ＦＡＴ２をＦＡＴ１に上書きしファイル更新前の状態に戻す。また、ディレクトリエントリ及びＦＡＴ２の更新途中で処理が停止していた場合には、ディレクトリエントリの更新を行うと共に、ＦＡＴ１をＦＡＴ２に上書きしファイルの更新処理を完結させる。これにより、ファイルに関する不整合が解消され、ファイルが正しく認識される状態になる。
【特許文献１】特開２００２−６３０５７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
ところで、上記従来技術において、記録媒体中のファイルの更新に際してその記録媒体中に記録される復旧用情報は、ファイルに関する不整合が生じない場合即ち異常が生じない場合においては不要となる情報である。
従って、その記録媒体を、本来の目的であるファイル記録のために、無駄なく有効に利用しようとする見地からは、異常時にしか必要とならない情報をその記録媒体に記録しないことが望まれる。
【００１７】
そこで、本発明は、異常時にしか必要とならない情報を記録媒体に記録することなく、その記録媒体中のファイル更新が途中で停止した場合において生じるファイルに関する不整合を解消することを可能にするためのファイル更新装置等を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するために、本発明に係るファイル更新装置は、ファイル内容を構成するデータの第１記録媒体中の格納位置を示す位置情報を記録してある第１記録媒体を着脱可能であり、第１記録媒体中のファイルを複数の更新手順を経て更新するファイル更新装置であって、第２記録媒体と、どの更新手順まで実施済みであるかを示す進行情報を第２記録媒体中に記録する進行記録手段と、更新前のファイル内容を構成するデータとは別に、更新後のファイル内容を構成するデータを第１記録媒体中に記録する新データ記録手段と、前記新データ記録手段により記録された更新後のファイル内容を構成するデータについての第１記録媒体中の格納位置を示す更新情報を第２記録媒体中に記録する更新情報記録手段と、更新後のファイル内容を構成するデータについて前記更新情報記録手段により更新情報が記録された後に、当該更新情報に基づいて、当該データについての第１記録媒体中の格納位置を示すように、当該ファイルの更新前の内容を構成するデータの格納位置を示している第１記録媒体中の位置情報を更新する位置情報更新手段とを備えることを特徴とする。
【発明の効果】
【００１９】
本発明に係るファイル更新装置は、上述の構成を備えることにより、第１記録媒体中の位置情報が複数手順で更新される場合において更新途中で第１記録媒体へのアクセス機構の電源断や第１記録媒体の取り外し等により更新が停止して、位置情報とデータの格納位置との間等において不整合が生じても、後に第２記録媒体中の情報を用いれば、後に位置情報の更新を再度行って完結させることができるようになる。しかも、異常時において不整合の解消に有用となる進行情報及び更新情報を、ファイルが記録されている第１記録媒体に保持しないので、第１記録媒体の領域が、無駄なくファイルの記録のために用いられ得る。
【００２０】
また、第１記録媒体がファイル更新装置から外された場合等においても、第１記録媒体中に、不整合の解消に有用となるだけの通常は無意味な情報が残されているのは、ユーザからこの情報が閲覧され得ることを想定すれば、ユーザを混乱させかねない。これに対して、本発明に係るファイル更新装置では、通常は無意味な情報を、着脱可能な第１記録媒体ではなく装置内部の第２記録媒体に記録し外部に出さないため、ファイル更新装置から第１記録媒体を取り外して閲覧するユーザにとっての混乱を防止できる可能性が高まる。
【００２１】
ここで、前記進行記録手段が記録する進行情報は、更新後のファイル内容を構成するデータについて前記更新情報が記録された後であるか否かを識別可能な情報であり、前記ファイル更新装置は、更に、所定条件が満たされた場合に、更新後のファイル内容を構成するデータについて更新情報が記録された後であるか否かを進行情報に基づき判定し、判定結果が肯定的なときには、当該更新情報に基づいて、当該データについての第１記録媒体中の格納位置を示すように第１記録媒体中の位置情報を更新する再更新手段を備えることとしてもよい。
【００２２】
所定条件は、例えば、ファイル更新装置が更新途中で、第１記録媒体へのアクセス機構への電源の遮断等により第１記録媒体内のファイルの更新が不可能な状態になった後、改めてその電源から電力が供給されたということ等である。つまり、ファイルの復元つまり不整合状態を解消するための再更新を実行する必要がありかつ実行可能な状況になったときに満たされるような条件である。従って、所定条件は、更新途中で第１記録媒体がファイル更新装置から取り外されることにより更新が途中で停止し、かつ、その後に第１記録媒体が再度ファイル更新装置に装着されたという条件であってもよい。
【００２３】
これにより、一旦更新処理が途中で停止していたとしても、所定条件が満たされた後に、第１記録媒体中のファイルについての更新後の状態と整合するように第１記録媒体中の例えばＦＡＴやディレクトリエントリ等の位置情報を再更新することが可能になるという効果が発揮される。なお、ファイルの更新途中で第１記録媒体への電源が遮断された場合であっても、第２記録媒体は例えば不揮発性のメモリや、第１記録媒体のアクセス機構への電源とは別個の電源から長期的に電力の供給を受けるように構成された揮発性メモリであることとすれば、更新情報が特に消去されない限り、上述の効果は発揮される。
【００２４】
また、前記ファイル更新装置は、更に、第１記録媒体中のファイルの更新前に、第１記録媒体から固有の媒体識別情報を読み出して自装置内に保持する媒体識別情報記録手段と、自装置に装着されている記録媒体の媒体識別情報を読み出して、その読み出した媒体識別情報と前記保持している媒体識別情報とを照合して両者が不一致の場合には、前記再更新手段による位置情報の更新を抑止する再更新抑止手段とを備えることとしてもよい。
【００２５】
これにより、更新されたものと同一の記録媒体が装着されている場合に限って、ファイルの復元を、つまり、ファイル内容を構成するデータの記録状態と整合するように位置情報を再度更新することを、行うことになるため、他の記録媒体の内容の破壊等を防止できるようになる。
また、前記ファイル更新装置は、第１記録媒体中の複数のファイルを更新対象とし、前記第１記録媒体中の位置情報は、第１記録媒体中の全ファイルについてのファイル内容を構成するデータの格納位置を示し、前記進行記録手段は、更新対象とされたファイル毎に進行情報を記録し、前記新データ記録手段は、更新対象とされた複数のファイルそれぞれについて、更新後の当該ファイルの内容を構成するデータの第１記録媒体中への記録を行い、前記更新情報記録手段は、前記新データ記録手段により記録された更新後のファイルそれぞれについて、対応する更新情報の記録を行い、前記位置情報更新手段は、前記更新情報記録手段により更新情報が記録されたところの各ファイルについての更新情報に基づいて、第１記録媒体中の位置情報の更新を行い、前記再更新手段は、前記所定条件が満たされた場合に、複数のファイルそれぞれについて、対応する進行情報に基づいて、更新後の当該ファイルに対応する更新情報が記録された後であると判定できるならば、当該ファイルに係る更新情報に基づいて、第１記録媒体中の位置情報を更新することとしてもよい。
【００２６】
これにより、複数のファイルが並行して更新されている場合においても、ファイル毎に、更新後の状態を示すように、第１記録媒体中の位置情報の不整合を解消することができるようになる。なお、更新情報は、例えば、各ファイルについての、先頭クラスタの情報と、それから連続するクラスタのリンクを示す情報とを意味する。
また、前記ファイル更新装置は、更に、前記新データ記録手段によりデータの記録がなされたファイルについてのクローズ指示を取得するクローズ指示取得手段を備え、前記進行記録手段が記録する進行情報は、ファイルについてクローズ指示が取得された後であるか否かも識別可能な情報であり、前記位置情報更新手段は、更新後のファイル内容を構成するデータについて前記更新情報が記録された後であってかつ前記クローズ指示取得手段により当該ファイルについてのクローズ指示が取得された後に限り、当該ファイルに係る更新情報に基づいて、第１記録媒体中の位置情報の更新を行い、前記再更新手段は、前記所定条件が満たされた場合に、複数のファイルそれぞれについて、対応する進行情報に基づいて、更新後の当該ファイルに対応する更新情報が記録された後であってかつクローズ指示が取得された後であると判定できるときに限って、当該ファイルに係る更新情報に基づいて、第１記録媒体中の位置情報を更新することとしてもよい。
【００２７】
これにより、クローズ指示が取得された時点以後についてのみ、更新後のファイル内容を構成するデータの位置を示すように、第１記録媒体中の位置情報の更新及び再更新を行うため、クローズ前のファイルについては第１記録媒体中では位置情報が更新されないことになる。例えばファイルの更新が複数回にわたってなされる場合においてその更新が完結していないとき、つまりクローズ前であるときは、第１記録媒体中の位置情報は、更新前のファイル内容を構成するデータの位置を示すので、クローズによって位置情報の更新がコントロールされるようになる。従って、複数のファイルが相互に関連する１つのグループを形成している場合に、全てのファイルの更新が完了した時点でそれぞれをクローズすることで、グループを構成する全てのファイルについてタイミングを合わせて、第１記録媒体中の位置情報の更新を行わせることができるようになる。
【００２８】
また、前記第１記録媒体には、第１記録媒体中のクラスタ毎に当該クラスタにいずれかのファイル内容を構成するデータが格納されているか否かを示し、かつ、同一ファイルの内容を構成するデータが格納されるクラスタ間に繋がりがあることを示すＦＡＴ情報と、第１記録媒体中のファイル毎についての、当該ファイル内容を構成するデータの先頭が格納されるクラスタを示すディレクトリ情報とが記録されており、前記第１記録媒体中の位置情報は、前記ＦＡＴ情報のうち、いずれのファイル内容を構成するデータも格納されていないクラスタを示す部分である未使用クラスタ情報を除くものと、前記ディレクトリ情報とから構成されており、前記更新情報記録手段が記録するファイルそれぞれについての前記更新情報は、前記新データ記録手段により記録された更新後の当該ファイルの内容を構成するデータが格納された第１記録媒体中のクラスタ間に繋がりがあることを示す連続関係情報と、更新後の当該ファイルの内容を構成するデータの先頭が格納されるクラスタを示すエントリ情報とから構成され、前記位置情報更新手段は、前記更新情報記録手段により更新情報が記録されたところの各ファイルについて、当該ファイルの内容を構成するデータに係る連続関係情報に基づいて、前記新データ記録手段により記録された更新後の当該ファイル内容を構成するデータが格納されたクラスタ間に繋がりがあることを示すようにＦＡＴ情報を更新し、かつ、当該ファイルに係るエントリ情報に基づいて、更新後の当該ファイル内容を構成するデータの先頭が格納されるクラスタを示すように当該ファイルについてのディレクトリ情報を更新し、前記再更新手段は、更新情報中の連続関係情報に基づいてＦＡＴ情報を更新し、かつ、更新情報中のエントリ情報に基づいてディレクトリ情報を更新することにより、位置情報を更新することとしてもよい。
【００２９】
これにより、ＦＡＴ情報と各ディレクトリ情報とによって各ファイルの位置を表すファイルシステムに従って記録された第１記録媒体中におけるファイルの更新の際の異常停止に対する復元を、第１記録媒体中に復元に必要な情報を特段記録することなく実行することが可能になる。なお、連続関係情報は、実施形態中で示すメインＦＡＴの一部又はサブＦＡＴの一部に相当する。
【００３０】
また、前記ファイル更新装置は、更に、前記更新情報記録手段による更新後のファイル内容を構成するデータについての更新情報の記録後に、当該ファイルの更新前の内容を構成するデータが格納されていた第１記録媒体中のクラスタには、いずれかのファイル内容を構成するデータが格納されていないことを示す未使用情報を第２記録媒体に記録する未使用領域解放手段を備え、前記位置情報更新手段は、ＦＡＴ情報の更新を、前記未使用領域解放手段により記録された未使用情報を未使用クラスタ情報に反映するように行い、前記再更新手段は、ＦＡＴ情報の更新を、前記未使用情報を未使用クラスタ情報に反映するように行うこととしてもよい。
【００３１】
これにより、ファイルの更新に対応して、更新後のファイル内容を構成するデータの記録位置を示すようにＦＡＴ情報を更新し、更に更新前のファイル内容を構成するデータが記録されていたクラスタは未使用なクラスタであることを示すようにＦＡＴ情報を更新するような更新処理が、途中で異常停止した場合であっても、後に、その未使用のクラスタがあればそれを適切に未使用と示すようにＦＡＴ情報を更新することができるようになる。
【００３２】
また、前記ファイル更新装置は、更に、全てのファイルの更新前に第１記録媒体中のＦＡＴ情報を第２記録媒体中の領域である作業ＦＡＴ領域に作業ＦＡＴ情報として複写するＦＡＴ複写手段と、前記新データ記録手段によりデータの記録がなされたファイルについてのクローズ指示を取得するクローズ指示取得手段とを備え、前記進行記録手段が記録する進行情報は、ファイルについてクローズ指示が取得された後であるか否かも識別可能な情報であり、前記新データ記録手段は、未使用情報又は全ての連続関係情報と、作業ＦＡＴ情報とに基づいて、更新後のファイルを構成するデータを、既に更新後の他のファイル内容を構成するデータが記録されているクラスタ以外のクラスタに記録し、前記更新情報記録手段は更に、取得されたクローズ指示に係るファイルについての連続関係情報を作業ＦＡＴ情報に反映させ、当該ファイルの更新前の内容を構成するデータが格納されていた第１記録媒体中のクラスタにはいずれかのファイル内容を構成するデータが格納されていないことを示す未使用情報をも作業ＦＡＴ情報に反映させ、前記位置情報更新手段は、前記作業ＦＡＴ情報に基づいてＦＡＴ情報を更新し、前記再更新手段は、前記所定条件が満たされた場合に、(a)複数のファイルそれぞれについて、対応する進行情報に基づいて、当該ファイルについてのクローズ指示が取得された後であると判定できるときには、当該ファイルに係る連続関係情報及び未使用情報を作業ＦＡＴ情報に反映させ、(b)作業ＦＡＴ情報に基づいてＦＡＴ情報を更新し、(c)対応する進行情報が、当該ファイルについてのクローズ指示が取得されたことを示すところの全てのファイルについてのエントリ情報に基づいてディレクトリ情報を更新することとしてもよい。
【００３３】
これにより、クローズ前であっても更新されたファイルについてはそのファイル内容を構成するデータが記録された第１記録媒体中のクラスタは空いていないものと管理し、空いているクラスタにのみ新たな更新後のファイル内容を構成するデータの記録を行い、かつ、クローズ後にのみ更新後のファイル内容を構成するデータの位置を、第１記録媒体中のＦＡＴ情報及びディレクトリ情報に反映させることが実現される。
【００３４】
また、前記ファイル更新装置は、更に、再更新に際して、更新後のファイル内容を構成するデータが第１記録媒体に記録されている場合においては当該データの格納位置を示すように位置情報を更新すべきである旨を示す指示を取得する更新反映指示取得手段を備え、前記再更新手段は、前記所定条件が満たされた場合でありかつ前記更新反映指示取得手段により指示が取得されている場合においては、作業ＦＡＴ情報に基づくＦＡＴ情報の前記更新の前に、更に複数のファイルそれぞれについて、対応する進行情報に基づいて、更新後の当該ファイル内容を構成するデータに対応する更新情報が記録された後であると判定できるときにも、当該ファイルに係る連続関係情報及び未使用情報を作業ＦＡＴ情報に反映させることとしてもよい。
【００３５】
これにより、ファイル更新装置への指示次第で、クローズ前であっても更新後のファイル内容を構成するデータが第１記録媒体に記録されていれば第１記録媒体中のＦＡＴ情報を更新するようにさせることが可能になる。
また、前記第１記録媒体は、相互に独立し、所定のアクセス制限が設けられた認証領域と、当該アクセス制限が設けられていない通常領域とから構成され、第１記録媒体中の位置情報は、認証領域内の各ファイル内容を構成するデータの当該認証領域内での格納位置を示す第１位置情報と、通常領域内の各ファイル内容を構成するデータの当該通常領域内での格納位置を示す第２位置情報とから構成され、前記進行記録手段が記録する進行情報は、認証領域内のファイルの更新がどの更新手順まで実施済みであるかを示す第１進行情報と、通常領域内のファイルの更新がどの更新手順まで実施済みであるかを示す第２進行情報とから構成され、前記新データ記録手段は、認証領域内のファイルについては更新前のファイル内容を構成するデータとは別に、更新後の当該ファイル内容を構成するデータを認証領域内に記録し、通常領域内のファイルについては更新前のファイル内容を構成するデータとは別に、更新後の当該ファイル内容を構成するデータを通常領域内に記録し、前記更新情報記録手段が記録する更新情報は、前記新データ記録手段により認証領域内に記録された更新後のファイル内容を構成するデータについての当該認証領域内での格納位置を示す第１更新情報と、前記新データ記録手段により通常領域内に記録された更新後のファイル内容を構成するデータについての当該通常領域内での格納位置を示す第２更新情報とから構成され、前記位置情報更新手段は、更新後のファイル内容を構成するデータについて前記更新情報記録手段により第１更新情報が記録された後に、当該第１更新情報を参照して、当該データについての認証領域内での格納位置を示すように、当該ファイルの更新前の内容を構成するデータの格納位置を示している第１位置情報を更新し、更新後のファイル内容を構成するデータについて前記更新情報記録手段により第２更新情報が記録された後に、当該第２更新情報を参照して、当該データについての通常領域内での格納位置を示すように、当該ファイルの更新前の内容を構成するデータの格納位置を示している第２位置情報を更新することとしてもよい。
【００３６】
これにより、認証領域と通常領域とを併せ持つ記録媒体について、領域別にファイルの復元を行うことができるようになる。
また、前記第１記録媒体は、フラッシュメモリであり、前記第２記録媒体は、第１記録媒体より高速アクセス可能なメモリであることとしてもよい。
これにより、フラッシュメモリ内に記録したファイルを更新する場合に、もしフラッシュメモリ内に復元に必要な更新情報を随時記録することとすれば、フラッシュメモリはその性質により部分的なデータの記録のためのアクセス速度が遅いため、ファイルの更新処理が遅延してしまうところを、更新情報をフラッシュメモリより高速アクセス可能なメモリに記録するため、ファイルの更新処理の遅延をある程度は防ぐことができるようになる。
【００３７】
また、前記第２記録媒体は、ＲＡＭであり、第１記録媒体の電源とは独立した電源から電力が供給されることとしてもよい。
これにより、第１記録媒体内のファイルの更新途中で第１記録媒体への電源が遮断されて更新が停止してしまう事態が生じても、その場合にともにＲＡＭへの電源が遮断されることはない。ＲＡＭとして、電源が供給されている限り記録内容を保持するタイプの一般に比較的高速なＲＡＭを利用することができる。なお、通常は第１記録媒体への電源が遮断されてもＲＡＭ中の更新情報が消滅することはないため、第１記録媒体への電源が復活した後にその更新情報を用いて復元を行うことが可能になる。
【００３８】
また、本発明に係るファイル更新方法は、ファイル内容を構成するデータの第１記録媒体中の格納位置を示す位置情報を記録してある第１記録媒体におけるファイルを複数の更新手順を経て更新するファイル更新方法であって、どの更新手順まで実施済みであるかを示す進行情報を第２記録媒体中に記録する進行記録ステップと、更新前のファイル内容を構成するデータとは別に、更新後のファイル内容を構成するデータを第１記録媒体中に記録する新データ記録ステップと、前記新データ記録ステップにより記録された更新後のファイル内容を構成するデータについての第１記録媒体中の格納位置を示す更新情報を第２記録媒体中に記録する更新情報記録ステップと、更新後のファイル内容を構成するデータについて前記更新情報記録ステップにより更新情報が記録された後に、当該更新情報に基づいて、当該データについての第１記録媒体中の格納位置を示すように、当該ファイルの更新前の内容を構成するデータの格納位置を示している第１記録媒体中の位置情報を更新する位置情報更新ステップとを含むことを特徴とする。
【００３９】
これにより、第１記録媒体中の位置情報が複数手順で更新される場合において更新途中で第１記録媒体へのアクセス機構の電源断や第１記録媒体の取り外し等により更新が停止して、位置情報とデータの格納位置との間等において不整合が生じても、後に第２記録媒体中の情報を用いれば、後に位置情報の更新を再度行って完結させることができるようになる。しかも、異常時において不整合の解消に有用となる進行情報及び更新情報を、ファイルが記録されている第１記録媒体に保持しないので、第１記録媒体の領域が、無駄なくファイルの記録のために用いられ得る。
【発明を実施するための最良の形態】
【００４０】
以下、本発明のファイル更新装置の実施形態に係る情報処理装置について、図面を用いて説明する。
＜実施形態１＞
＜構成及び利用データ＞
図５は、本発明の実施形態１に係る情報処理装置の構成図である。
【００４１】
情報処理装置３００は、例えばＰＣや、携帯情報端末（ＰＤＡ）等であり、例えばメモリカード等である情報記録媒体３６０を装着するためのメモリカードスロット等を備えており、装着された情報記録媒体３６０中のファイルを編集して更新する機能を有する。
この情報処理装置３００は、図５に示すように、ＣＰＵ３１０、主電源３２０、不揮発性メモリ３３０、ＲＡＭ３４０、補助電源３５０を備え、また特に図示はしていないが、キーやボタン等を介してユーザ操作を受け付ける入力インタフェースや、ユーザに情報を提示するためのディスプレイ等をも備えている。
【００４２】
ここで、主電源３２０は、充電式の電池であり、情報処理装置３００内の各部及び情報記録媒体３６０に電力を供給するものである。なお、この主電源３２０は、あまり長期間電力を供給し続けることができず、例えば数時間や数日等の情報処理装置の連続使用により電池残量が０になることが想定されている。
不揮発性メモリ３３０は、ＣＰＵ３１０上で動作するプログラムを格納しているメモリであり、特に、ファイルの更新及び復元に関する処理を実現するためのファイル処理プログラム３３１を格納しており、図示しないアプリケーションプログラムやシステムプログラム等も格納している。ここで、復元とは、ファイルの更新過程においての電源断等により更新が完全に終了しなかった場合において生じる不正な状態を解消するために、ファイルに関連する情報を再更新することをいう。
【００４３】
ＲＡＭ３４０は、補助電源３５０から常時電力の供給を受けてデータを常時保持するメモリであり、たとえ主電源３２０から情報処理装置３００の各部への電力供給が停止したとしてもこのＲＡＭ３４０内のデータは保持され続ける。なお、補助電源３５０は、ある程度長期にわたって電力の供給を継続するような一次電池である。
このＲＡＭ３４０内には、情報記録媒体３６０中のデータの物理的な格納位置を示すメインＦＡＴ３４１と、ファイルの更新により新たに記録されたデータの物理的な格納位置を示すサブＦＡＴ３４２と、更新対象のファイル毎に対応したオープンファイル情報３４３とが格納される。メインＦＡＴ３４１及びサブＦＡＴ３４２は、情報記録媒体３６０におけるクラスタ単位でのデータの格納位置を示すことになる。
【００４４】
また、オープンファイル情報３４３は、エントリ情報３４４、処理ステータス３４５及び復元情報３４６を含む。
ここで、エントリ情報３４４は、更新対象とされたファイルの名前、ファイル内容を構成するデータが格納された先頭のクラスタの番号（以下、「開始クラスタ番号」ともいう。）、ファイル内容を構成するデータのサイズ（以下、「ファイルサイズ」ともいう。）等の情報を含む。
【００４５】
処理ステータス３４５は、更新の進行度合いを示す情報、即ちファイルの更新が複数の手順によりなされるところ、どの手順まで実行されたかを示す情報である。この処理ステータスは、ファイルの更新の過程で逐次変更され、ファイルの更新が途中で停止してファイルを管理する情報に不整合が生じた際にその不整合を解消するためになされる復元処理において参照されることになる。
【００４６】
また、復元情報３４６は、ファイルが記録されている情報記録媒体においてファイルの位置を示している情報を、ファイルの更新前の状態に戻すために必要となる情報、つまり更新前のファイルを構成するデータが格納されていた先頭のクラスタの番号等である。
また、情報処理装置３００に装着される情報記録媒体３６０は、その中に記録されているデータがＦＡＴファイルシステムにより管理されており、記録領域を複数のパーティションに分割して管理するための情報を格納するマスターブートレコード・パーティションテーブル３６１と、１つのパーティション内の管理情報を格納するパーティションブートセクタ３６２と、セクタの所定数の集合であるクラスタのそれぞれについてファイル構成データを格納しているか否かに加えてクラスタ間のリンク関係を示すＦＡＴ３６３及びＦＡＴ３６４と、ルートディレクトリ直下に存在するファイル又はディレクトリの情報を格納するルートディレクトリエントリ３６５と、ファイルを構成するデータを格納するためのデータ領域３６６とを有している。なお、ＦＡＴ３６３及びＦＡＴ３６４は、二重化されたテーブルであり、基本的に同内容となることが予定されている。また、クラスタ間のリンク関係とは、同じファイルを構成するデータを格納しているクラスタ間の繋がりのことである。
【００４７】
各ファイルを構成するデータの情報記録媒体３６０における記録位置は、ルートディレクトリエントリ３６５に格納されるディレクトリエントリ又はデータ領域３６６に格納されるディレクトリエントリと、ＦＡＴ３６３又はＦＡＴ３６４によって特定される。
＜動作＞
以下、上述した情報処理装置３００の動作について説明する。
【００４８】
情報処理装置３００は、ＣＰＵ３１０によるファイル処理プログラム３３１の実行により、ユーザによる電源ボタンの押下等に対応して主電源３２０が電力の供給を開始した時点つまり装置が起動された時点から、前回の起動時においてファイルの更新が完了しないで電源断等により異常終了していた場合には後述の復元処理を実行し、その後に情報記録媒体３６０が装着されている状態になったときに、更新準備処理を行い、その後に、各ファイルについて、後述する更新処理を行う。
【００４９】
なお、更新準備処理は、情報記録媒体３６０中のＦＡＴ３６３をＲＡＭ３４０中のメインＦＡＴ３４１にコピーして、サブＦＡＴ３４２を０クリアし、オープンファイル情報の内容を全て無効化する処理である。
図６は、情報記録媒体３６０の内容例、及び、更新準備処理がなされた後におけるＲＡＭ３４０の内容例を示す図である。
【００５０】
同図に示すように、情報記録媒体３６０内のあるディレクトリエントリは、ＦＩＬＥ１．ＴＸＴというファイル名の４２ＫＢのファイルについて示しており、そのファイルを構成するデータが３番のクラスタから格納されていることをも示している。同図中のデータ領域において斜線パターンで塗りつぶしてある部分は、そのファイルを構成するデータが格納されているクラスタを示す。
【００５１】
同図中のＦＡＴは、基本的に同内容であるＦＡＴ１とＦＡＴ２とを代表して示したものであり、この例では３番目、４番目、５番目のクラスタがリンクしていることを示しており、ディレクトリエントリと合わせて参照すると、ＦＩＬＥ１．ＴＸＴというファイル名のファイルを構成するデータは３番目、４番目、５番目のクラスタにこの順に記録されていることが判明する。なお、５番目のクラスタに対応するＦＡＴエントリには、このクラスタでファイルを構成するデータが終了することを意味する、つまりクラスタのリンクの終端を意味する０ｘＦＦＦが、格納されている。また、６番目、７番目等のクラスタに対応するＦＡＴエントリには０が格納されており、これらのクラスタにはファイルを構成するデータが格納されていないことを意味している。
【００５２】
また、更新準備処理の結果として、ＲＡＭ３４０内に、情報記録媒体３６０のＦＡＴをコピーしたものであるメインＦＡＴと、全て０値を設定したサブＦＡＴと、無効化されたオープンファイル情報とが格納される。なお、無効化されたオープンファイル情報が格納されているということは、有効なオープンファイル情報が格納されていないことを意味する。
【００５３】
以下、情報処理装置３００においてファイル処理プログラム３３１の一部により実現される更新処理について説明する。
図７は、情報処理装置３００による更新処理の概要を示すフローチャートである。
この更新処理は、更新対象とされた各ファイルについて独立的に実行されるものであり、複数のファイルについて並行して実行され得ることが想定されている。ファイル処理プログラム３３１は、アプリケーションプログラムやシステムプログラムの実行に際してファイルの更新が要求された場合にこの更新処理を実行する。
【００５４】
まず、情報処理装置３００は、情報記録媒体３６０中のファイルについて完全に更新が完了しない場合において更新前の状態に戻すことができるようにするために、元のデータをコピーすることを主な内容とするオープン処理を実行し（ステップＳ１１）、ファイルの更新に応じてクローズ指示を取得する迄は更新後のデータを情報記録媒体３６０に記録する更新後データ記録処理を実行し（ステップＳ１２、Ｓ１３）、更新の完了を意味するクローズ指示を取得した場合にはクローズ処理を実行し（ステップＳ１４）、更新後のファイルを構成するデータの所在位置を管理する情報を情報記録媒体３６０に記録するための管理情報記録処理を実行する（ステップＳ１５）。なお、クローズ指示は、ユーザ操作に応じて又は所定の条件判断に基づきアプリケーションプログラム又はシステムプログラムからなされるものである。
【００５５】
以下、ステップＳ１１、Ｓ１２、Ｓ１４及びＳ１５の各処理内容について、その処理により変化するデータの例を用いながら詳細に説明する。
図８は、情報処理装置３００によるオープン処理を示すフローチャートである。
まず、ファイル処理プログラム３３１をＣＰＵ３１０により実行する情報処理装置３００は、アプリケーションプログラム又はシステムプログラムによって更新対象とされたファイルについてのディレクトリエントリを情報記録媒体３６０から取得し、ＲＡＭ３４０内のオープンファイル情報中のエントリ情報に書き込む（ステップＳ５０１）。なお、オープンファイル情報中の処理ステータスは”０”にする。
【００５６】
続いて、情報処理装置３００は、ステップＳ５０１において取得したディレクトエントリ中のファイルサイズを参照して、ＲＡＭ３４０内のメインＦＡＴ３４１及びサブＦＡＴ３４２からデータ領域３６６中にそのファイルサイズの空き領域が存在するか検索する（ステップＳ５０２）。空き領域が存在しない場合、エラー発生の旨をディスプレイに表示し更新処理を終了する。ステップＳ５０２の検索においては、メインＦＡＴ３４１とサブＦＡＴ３４２との両方においてＦＡＴエントリの内容が０であるクラスタを空きであると判断する。
【００５７】
ステップＳ５０２に続いて、情報処理装置３００は、ステップＳ５０１において取得したディレクトリエントリ中の開始クラスタ番号を参照し、オープンファイル情報中の復元情報として記録し（ステップＳ５０３）、検索された空き領域の先頭クラスタの番号を、オープンファイル情報中のエントリ情報の開始クラスタ番号として記録する（ステップＳ５０４）。
【００５８】
次に、情報処理装置３００は、検索した空き領域のクラスタに対応するサブＦＡＴ３４２内のＦＡＴエントリにリンクを書き込み（Ｓ５０５）、その空き領域であった情報記録媒体３６０中のクラスタに、更新対象ファイルを構成するデータをコピーする（Ｓ５０６）。なお、情報処理装置３００は、ステップＳ５０５、Ｓ５０６の処理を、クラスタ単位で、更新対象ファイルのデータを全てコピーし終えるまで繰り返し行う（Ｓ５０７）。更新対象のファイルを構成する全てのデータのコピーが完了すると、そのファイルについてのオープンファイル情報中の処理ステータスに“１”を設定する（ステップＳ５０８）。
【００５９】
このようにオープン処理では、更新対象のファイルに関する情報をＲＡＭ上に読み込み、ファイルアクセスの準備を行うと共に、更新対象のファイル内容を構成するデータを情報記録媒体上の空き領域にコピーし、以後はそのコピーしたデータに対して行うため、更新処理が途中で停止したような場合において、オープン時点の状態にファイルを復元することが可能になる。
【００６０】
図９は、オープン処理後のデータ状態を例示する図である。
同図では、情報記録媒体中のＦＩＬＥ１．ＴＸＴという名前のファイルが更新対象とされた場合の例を示しており、そのファイルを構成するデータは更新前においては３番、４番、５番のクラスタに記録されており、そのことからＦＡＴとメインＦＡＴとは３番、４番、５番のクラスタに対応するＦＡＴエントリが０以外の値となっている様子を示している。
【００６１】
そしてファイルサイズが４２ＫＢであるため、ステップＳ５０２による空き領域の検索結果として、同図の例では６番、７番、８番のクラスタが検索されたものとしている。なお、ここでは、情報記録媒体３６０の容量は６４ＭＢであり、１クラスタが１６ＫＢである例について示している。
また、ステップＳ５０３により復元情報にはディレクトリエントリにおける開始クラスタ番号である３が記録され、ステップＳ５０４によりエントリ情報の開始クラスタ番号が６とされ、ステップＳ５０５〜Ｓ５０７により、サブＦＡＴの６番〜８番のクラスタに対応するＦＡＴエントリにはリンクが格納され、更新前のファイルを構成するデータは、６番〜８番のクラスタにコピーされ、ステップＳ５０８により処理ステータスが”１”にされた後の状態が、図９に現れている。
【００６２】
図１０は、情報処理装置３００による更新後データ記録処理を示すフローチャートである。
情報処理装置３００は、メインＦＡＴ３４１及びサブＦＡＴ３４２から書込み位置を決定し（ステップＳ７０１）、情報記録媒体３６０中のその決定した位置に更新後のファイル内容を構成するデータを記録する（ステップＳ７０２）。なお、データを上書きする場合には、サブＦＡＴ３４２を参照して元に上書き位置を決定し、データを追加する場合は、メインＦＡＴ３４１及びサブＦＡＴ３４２から空き領域を検索して書き込み位置を決定する。また、更新後のファイル内容は、ユーザ操作等に応じて又は所定の演算に基づきアプリケーションプログラム又はシステムプログラムにより決定される。
【００６３】
ステップＳ７０２においてデータを記録した後に情報処理装置３００は、その記録によってＦＡＴが変更されるべき場合にはそのデータを記録したクラスタに対応するようにサブＦＡＴ３４２中のリンクを更新し（ステップＳ７０３）、ファイルサイズに変更が生じる場合にはそのファイルについてのオープンファイル情報中のエントリ情報中のファイルサイズを更新し（ステップＳ７０４）、続いてそのオープンファイル情報中の処理ステータスに”２”を設定する（ステップＳ７０５）。
【００６４】
図１１は、更新後データ記録処理後のデータ状態を例示する図である。
同図は、図９に続いた状態を示しており、ＦＩＬＥ１．ＴＸＴという名前のファイル内容を構成するデータが格納されている７番のクラスタの内容が上書き更新され、そのファイル内容を構成するデータとして９番のクラスタが追加された状態（ステップＳ７０１、Ｓ７０２）が、データ領域に現れている。
【００６５】
また、図１１は、サブＦＡＴのＦＡＴエントリが更新され（ステップＳ７０３）、６番から９番までクラスタが連続していることを示しており、また、エントリ情報中のファイルサイズが４２ＫＢから６０ＫＢに更新されており（ステップＳ７０４）、処理ステータスが”２”にされた様子を示している（ステップＳ７０５）。
図１２は、情報処理装置３００によるクローズ処理を示すフローチャートである。
【００６６】
情報処理装置３００は、更新対象としているファイルについてのオープンファイル情報中の処理ステータスに”３”を設定し（ステップＳ９０１）、続いて、エントリ情報中の開始クラスタ番号を取得する（Ｓ９０２）。
ステップＳ９０２に続いて、情報処理装置３００は、取得した開始クラスタ番号から始まるリンクをサブＦＡＴ３４２上から得て、メインＦＡＴ３４１にコピーし（ステップＳ９０３）、全てのリンクのコピーが完了すると、サブＦＡＴ３４２におけるそのリンクを解放する（ステップＳ９０４）。なお、リンクの解放は、あるクラスタに対応するＦＡＴエントリが他のクラスタの番号又は０ｘＦＦＦという値を有しているところ、そのＦＡＴエントリの内容を０という値に変更することにより、なされる。
【００６７】
ステップＳ９０４を終えた後に、情報処理装置３００は、更新対象としているファイルについてのオープンファイル情報中の処理ステータスに”４”を設定し（ステップＳ９０５）、続いて、更新前の開始クラスタ番号を示している復元情報、即ち更新前のファイル内容を構成するデータを格納していた先頭のクラスタ番号を示している復元情報を参照して、その開始クラスタ番号を取得し（ステップＳ９０６）、その開始クラスタ番号のクラスタに対応するＦＡＴエントリから始まるリンクを、メインＦＡＴから解放し（ステップＳ９０７）、処理ステータスに”５”を設定する（ステップＳ９０８）。
【００６８】
図１３は、クローズ処理におけるステップＳ９０３の実行後のデータ状態を例示する図である。同図は、図１１に続いた状態を示している。
エントリ情報から開始クラスタ番号として６が取得され（ステップＳ９０２）、サブＦＡＴにおいて６番のクラスタに対応するＦＡＴエントリからリンクされた７番、８番及び９番のクラスタに対応するＦＡＴエントリの内容が、メインＦＡＴにコピーされた状態（ステップＳ９０３）が、図１１に現れている。
【００６９】
図１４は、複数のファイルが更新対象とされ、並行的に、更新処理が実施されている状況におけるメインＦＡＴの更新の様子を示す図である。
クローズ処理におけるステップＳ９０３によって、クローズ処理が行われたファイルについてのみ、そのファイルを構成するデータに係るサブＦＡＴ中のリンク情報が、メインＦＡＴにコピーされることになる。同図の例では、そのファイルについてクローズ指示が取得されたＦＩＬＥ１．ＴＸＴという名前のファイルについては、更新後のファイル内容を構成するデータが格納されたクラスタを示す情報がサブＦＡＴからメインＦＡＴにコピーされるが、未だクローズ指示が取得されていない即ち更新中であるＦＩＬＥ２．ＴＸＴという名前のファイルについては、更新後のファイル内容を構成するデータが格納されたクラスタを示す情報はサブＦＡＴのみに存在し、メインＦＡＴにはコピーされないことを示している。後述する管理情報記録処理によりメインＦＡＴは情報記録媒体３６０中のＦＡＴにコピーされることになるため、クローズされたファイルについてのみ更新後のファイルを構成するデータの所在位置を示す情報がＦＡＴに記録されることになる。
【００７０】
図１５は、クローズ処理におけるステップＳ９０５の実行後のデータ状態を例示する図である。同図は、図１３に続いた状態を示している。
図１３で示されていたサブＦＡＴ中の、ＦＩＬＥ１．ＴＸＴの更新後のファイル内容を構成するデータが格納されているクラスタを示すリンク情報が、ステップＳ９０４によりクリアされていることが図１５には現れており、また、ステップＳ９０５により処理ステータスが４にされていることが図１５には現れている。
【００７１】
図１６は、クローズ処理が終了後のデータ状態を例示する図である。同図は、図１５に続いた状態を示している。
図１５で示されていたメインＦＡＴ中の、ＦＩＬＥ１．ＴＸＴの更新前のファイル内容を構成するデータが格納されているクラスタを示すリンク情報が、ステップＳ９０７によりクリアされており、また、処理ステータスがステップＳ９０８により５にされていることが図１６には現れている。
【００７２】
図１７は、情報処理装置３００による管理情報記録処理を示すフローチャートである。
情報処理装置３００は、クローズ処理を行った後に、ＲＡＭ３４０内のメインＦＡＴ３４１の内容を、情報記録媒体３６０中のＦＡＴの領域にコピーすることでＦＡＴを更新する（ステップＳ１３０１）。ＦＡＴの領域へのコピーは、詳細に言えばＦＡＴ１とＦＡＴ２との両方へのコピーのことである。
【００７３】
ＦＡＴの更新に続いて、情報処理装置３００は、ＲＡＭ３４０内のクローズしたファイルについてのオープンファイル情報に含まれるエントリ情報を、情報記録媒体３６０内の対応するファイルのディレクトリエントリに反映させるよう書込みを行い（ステップＳ１３０２）、オープンファイル情報をクリアして処理ステータスに０を設定し（ステップＳ１３０３）、管理情報記録処理を終了する。
【００７４】
図１８は、管理情報記録処理の実行後のデータ状態を例示する図である。同図は、図１６に続いた状態を示している。
図１６で示されていたＦＡＴ中の、ＦＩＬＥ１．ＴＸＴの更新前のファイル内容を構成するデータが格納されているクラスタを示すリンク情報、つまり３番〜５番のクラスタに対応するＦＡＴエントリに格納されている値が、ステップＳ１３０１により０でクリアされており、また、ディレクトリエントリは更新されており、ＦＩＬＥ１．ＴＸＴに関するオープンファイル情報はクリアされていることが図１８には現れている。
【００７５】
以下、情報処理装置３００においてファイル処理プログラム３３１の一部により実現される復元処理について説明する。
復元処理は、主電源の遮断等によりファイル更新が完了しないで途中において停止していた場合に、次に主電源から電力が供給できるようになった後、例えば主電源である電池が再充電されてユーザにより電源オンにする操作がなされた後、に実行される処理である。
【００７６】
図１９は、情報処理装置３００による復元処理を示すフローチャートである。
情報処理装置３００は、復元処理を開始すると、まず、ＲＡＭ３４０に保持されている各オープンファイル情報に、順番に着目し、その中の処理ステータスを判別する（ステップＳ１５０１）。判別の結果、その処理ステータスが”３”であれば、その着目しているオープンファイル情報内のエントリ情報中の開始クラスタ番号のＦＡＴエントリから始まり、内容が０ｘＦＦＦであるＦＡＴエントリまで続くリンクをサブＦＡＴから探して、それらのＦＡＴエントリの内容をメインＦＡＴの同じクラスタに対応するＦＡＴエントリにコピーし、そのサブＦＡＴ中のそれらのＦＡＴエントリの内容を０にクリアし（ステップＳ１５０２）、処理ステータスに”４”を設定する（ステップＳ１５０３）。
【００７７】
処理ステータスが”３”で停止している場合にはサブＦＡＴからメインＦＡＴにリンクをコピーしている途中、或いはサブＦＡＴ上のリンクを解放している途中で、更新処理が停止したことを示すことから、復元処理において、このステップＳ１５０２が実行される。
なお、サブＦＡＴ上のリンクを解放している途中で更新処理が停止した場合にはエントリ情報中の開始クラスタ番号に対応するサブＦＡＴ上のリンク情報が０に設定されているので、このときには、ステップＳ１５０２においては、エントリ情報中の開始クラスタ番号のＦＡＴエントリから始まり、内容が０ｘＦＦＦであるＦＡＴエントリまで続くリンクをメインＦＡＴ上から探して、それと同じクラスタに対応するサブＦＡＴ上のＦＡＴエントリの内容を０にクリアする。
【００７８】
ステップＳ１５０３を実行した場合に、又は、ステップＳ１５０１の判別の結果その処理ステータスが”４”である場合に、情報処理装置３００は、着目しているオープンファイル情報内のエントリ情報の復元情報が示すところの、更新前のファイル内容を構成するデータの開始クラスタ番号を得て、その開始クラスタ番号に対応するメインＦＡＴ上のＦＡＴエントリからリンクされているＦＡＴエントリ内の値を全て０クリアし、リンクを解放し（ステップＳ１５０４）、処理ステータスに”５”を設定する（ステップＳ１５０５）。
【００７９】
なお、メインＦＡＴ上のリンクの解放中に処理が停止した場合でも、復元処理において正しくそのリンクの解放が行えるように、リンク解放時には復元情報に解放前リンクのクラスタ番号と解放後リンクのクラスタ番号とを格納した後に、解放前リンクのクラスタ番号を解放する。なお、解放前リンクのクラスタ番号と解放後リンクのクラスタ番号とは、復元情報に一度に即ち一命令の実行により記録される。
【００８０】
例えばクラスタ番号３、４、５のリンクを解放する場合、復元情報に３、４を格納した後、メインＦＡＴ上のクラスタ番号３に対応するＦＡＴエントリに空き領域を示す０を設定する。次に、復元情報を４、５に変更した後、メインＦＡＴ上のクラスタ番号４に対応するＦＡＴエントリに位置を空き領域を示す０を設定する。最後に復元情報を５、０ｘＦＦＦに設定した後、メインＦＡＴ上のクラスタ番号５に対応するＦＡＴエントリに空き領域を示す０を設定し、復元情報に０を設定する。この手順によりメインＦＡＴの解放を行うことで、解放の途中で処理が停止した場合でも、次回の復元処理において解放を続行することができるようになる。
【００８１】
ステップＳ１５０５が終了した後、或いは着目しているオープンファイル情報の処理ステータスが”０”、”１”、”２”、”５”のいずれかであった場合には、情報処理装置３００は、全てのオープンファイル情報について既に着目したか否かを判定し（ステップＳ１５０６）、未着目のオープンファイル情報があればそれに着目してステップＳ１５０１に戻って処理を行い、全てのオープンファイル情報に着目済みであれば、ＲＡＭ３４０内のメインＦＡＴの内容を、情報記録媒体３６０内のＦＡＴ１及びＦＡＴ２にコピーする（ステップＳ１５０７）。
【００８２】
ステップＳ１５０７に続いて情報処理装置３００は、全てのオープンファイル情報の中から処理ステータスが”５”であるものを検索して、検索した全てのオープンファイル情報についての各エントリ情報を、情報記録媒体３６０中の対応するファイルのディレクトリエントリに反映させるよう書込みを行い（ステップＳ１５０８）、全てのオープンファイル情報を０でクリアして、復元処理を終了する。
【００８３】
以上の復元処理により、ファイルのクローズ指示が取得された後に更新処理が途中で停止していたファイルについては、更新後の状態にファイルが復元され、クローズ指示が取得される前に更新処理が途中で停止していたファイルについては、オープン時の状態つまり更新前の状態にファイルが復元される。なお、複数のファイルオープン情報それぞれに着目して個別に処理ステータスに応じてファイルの復元を行うため、複数のファイルが並行的に更新されている場合でも、それぞれにファイルの更新の進行度に応じて適切にファイルを復元すること、即ちファイルを管理するためのＦＡＴやディレクトリエントリを整合する状態になるように再更新することが、可能となる。
＜実施形態２＞
＜構成及び利用データ＞
図２０は、本発明の実施形態２に係る情報処理装置の構成図である。
【００８４】
実施形態２に係る情報処理装置１３００は、実施形態１で示した情報処理装置３００とほとんど同じ構成を備えるが、サブＦＡＴを用いずにファイルについての更新処理及び復元処理を行う点で、情報処理装置３００と異なる。なお、図２０中の情報処理装置１３００の構成要素のうち、情報処理装置３００と同一のものについては図中で同じ符号を用いている。
【００８５】
この情報処理装置１３００においては、情報記録媒体３６０中のファイルの更新が繰り返しなされた場合に、ファイルのクローズ指示がなされなくても、最後の更新が情報記録媒体３６０中のＦＡＴやディレクトリエントリに反映される。そして、更新処理の途中で主電源の遮断等により更新処理が停止した場合にその後の復元処理によってなされるファイルの復元は、既にデータの更新がなされその更新された位置を示す情報がＲＡＭに格納されていれば、最後の更新がなされた状態になるようにＦＡＴ等を再更新して実現される。
【００８６】
この情報処理装置１３００は、図２０に示すように、ＣＰＵ３１０、主電源３２０、不揮発性メモリ１３３０、ＲＡＭ１３４０、補助電源３５０を備え、また特に図示はしていないが、キーやボタン等を介してユーザ操作を受け付ける入力インタフェースや、ユーザに情報を提示するためのディスプレイ等をも備えている。
ここで、不揮発性メモリ１３３０は、ＣＰＵ３１０上で動作するプログラムを格納しているメモリであり、特に、クローズ前の更新を有効とするタイプのファイルの更新及び復元に関する処理を実現するためのファイル処理プログラム１３３１を格納しており、図示しないアプリケーションプログラムやシステムプログラム等も格納している。
【００８７】
ＲＡＭ１３４０は、電池等である補助電源３５０から常時電力の供給を受けてデータを常時保持するメモリであり、たとえ主電源３２０から情報処理装置１３００の各部への電力供給が停止したとしてもこのＲＡＭ１３４０内のデータは保持され続ける。このＲＡＭ１３４０内には、情報記録媒体３６０中のＦＡＴを更新するための作業に用いられるメインＦＡＴ１３４１と、更新対象のファイル毎に対応したオープンファイル情報１３４３とが格納される。メインＦＡＴ１３４１は、情報記録媒体３６０におけるクラスタ単位でのデータの格納位置を示すことになる。
【００８８】
また、オープンファイル情報１３４３は、エントリ情報１３４４、処理ステータス１３４５及び復元情報１３４６を含む。ここで、エントリ情報１３４４は、エントリ情報３４４と同様であり、処理ステータス１３４５は、更新の進行度合いを示す情報、即ちファイルの更新が複数の手順によりなされるところ、どの手順まで実行されたかを示す情報である。この処理ステータス１３４５は、ファイルの更新の過程で逐次変更され、ファイルの更新が途中で停止してファイルを管理する情報に不整合が生じた際にその不整合を解消するためになされる復元処理において参照されることになる。
【００８９】
また、復元情報１３４６は、復元に必要な情報であり、更新後のファイル内容を構成するデータが格納された先頭のクラスタの番号（以下、「新リンク開始クラスタ番号」という。）と、更新前のファイル内容を構成するデータが格納されていた先頭のクラスタの番号（以下、「更新開始クラスタ番号」という。）とから構成される。
＜動作＞
以下、上述した情報処理装置１３００の動作について説明する。
【００９０】
情報処理装置１３００は、ＣＰＵ３１０によるファイル処理プログラム１３３１の実行により、ユーザによる電源ボタンの押下等に対応して主電源３２０が電力の供給を開始した時点つまり装置が起動された時点から、前回の起動時においてファイルの更新が完了しないで電源断等により異常終了していた場合には後述の復元処理を実行し、その後に情報記録媒体３６０が装着されている状態になったときに、更新準備処理を行い、その後に、各ファイルについて、後述する更新処理を行う。
【００９１】
なお、更新準備処理は、情報記録媒体３６０中のＦＡＴ３６３をＲＡＭ１３４０中のメインＦＡＴ１３４１にコピーして、オープンファイル情報の内容を全て無効化する処理である。
更新準備処理の結果として、ＲＡＭ１３４０内に、情報記録媒体３６０のＦＡＴをコピーしたものであるメインＦＡＴ１３４１と、無効化されたオープンファイル情報とが格納される。なお、無効化されたオープンファイル情報が格納されているということは、有効なオープンファイル情報が格納されていないことを意味する。
【００９２】
以下、情報処理装置１３００においてファイル処理プログラム１３３１の一部により実現される更新処理について説明する。
図２１は、情報処理装置１３００による更新処理の概要を示すフローチャートである。
この更新処理は、更新対象とされた各ファイルについて独立的に実行されるものであり、複数のファイルについて並行して実行され得ることが想定されている。ファイル処理プログラム１３３１は、アプリケーションプログラムやシステムプログラムの実行に際してファイルの更新が要求された場合にこの更新処理を実行する。
【００９３】
まず、情報処理装置１３００は、オープン処理を実行し（ステップＳ２１）、ファイルの更新に応じてクローズ指示を取得する迄は更新後のデータを情報記録媒体３６０に記録する等を内容とするファイル更新処理を実行し（ステップＳ２２、Ｓ２３）、更新の完了を意味するクローズ指示を取得した場合には、更新後のファイルを構成するデータの所在位置を管理する情報を情報記録媒体３６０に記録するための管理情報記録処理を実行する（ステップＳ２４）。
【００９４】
以下、ステップＳ２１、Ｓ２２及びＳ２４の各処理内容について、実施形態１で用いたＦＩＬＥ１．ＴＸＴという名前のファイルについての更新を例にして詳細に説明する。
図２２は、情報処理装置１３００によるオープン処理を示すフローチャートである。
情報処理装置１３００は、まず更新対象のファイルについてのディレクトリエントリを情報記録媒体３６０から取得し、ＲＡＭ１３４０内のオープンファイル情報に含まれるエントリ情報として記録する（ステップＳ１６０１）。つまり、１つのオープンファイル情報のエントリ情報に、ＦＩＬＥ１．ＴＸＴのファイル名、更新開始クラスタ番号及びファイルサイズが設定される。
【００９５】
続いて、情報処理装置１３００は、その更新対象のファイルについてのオープンファイル情報中の処理ステータスに”１１”を設定し（ステップＳ１６０２）、オープン処理を終える。
図２３は、情報処理装置１３００によるファイル更新処理を示すフローチャートである。
【００９６】
情報処理装置１３００は、オープン処理においてエントリ情報として記録したファイルサイズを参照して、ＲＡＭ１３４０内のメインＦＡＴ１３４１からそのファイルサイズの空き領域が存在するかを検索する（ステップＳ１７０１）。なお、ステップＳ１７０１の検索においては、メインＦＡＴ１３４１においてＦＡＴエントリの内容が０であるクラスタを空きであると判断する。
【００９７】
ステップＳ１７０１に続いて、情報処理装置１３００は、更新対象のファイルのオープンファイル情報中の復元情報に、空き領域のクラスタ番号である新リンク開始クラスタ番号と、ファイルの更新開始クラスタ番号とを記録し（ステップＳ１７０２）、処理ステータスに”１２”を設定する（ステップＳ１７０３）。なお、ステップＳ１７０２では、新リンク開始クラスタ番号をエントリ情報における開始クラスタ番号としても設定する。
【００９８】
ステップＳ１７０３に続いて、情報処理装置１３００は、情報記録媒体３６０のデータ領域３６６における空き領域に更新後のファイル内容を構成するデータを書込み（ステップＳ１７０４）、そのデータを書き込んだ各クラスタのリンクを示すように、メインＦＡＴを更新し（ステップＳ１７０５）、その書き込んだデータのサイズを示すようにエントリ情報中のファイルサイズを更新し（ステップＳ１７０６）、処理ステータスに”１３”を設定する（ステップＳ１７０７）。
【００９９】
ステップＳ１７０７の後に、情報処理装置１３００は、ＲＡＭ１３４０中のメインＦＡＴから更新前のファイル内容を構成するデータが格納されていたクラスタを示すリンクを解放し（ステップＳ１７０８）、処理ステータスに”１４”を設定し（ステップＳ１７０９）、ファイル更新処理を終える。
図２４は、ファイル更新処理におけるステップＳ１７０３の実行後のデータ状態を例示する図である。
【０１００】
同図の情報記録媒体の内容例が示すように、更新対象となる情報記録媒体３６０中のファイルの内容を構成するデータは、データ領域３６６における３番、４番、５番のクラスタに格納されており、そのファイルのファイル名はＦＩＬＥ１．ＴＸＴであって、ファイルサイズが４２ＫＢである。
また、同図は、ＦＩＬＥ１．ＴＸＴという名前のファイルについてのオープンファイル情報中の復元情報として、その更新前のファイル内容を構成するデータが格納されている先頭クラスタの番号である３が、更新開始クラスタ番号として設定され、ステップＳ１７０１の検索結果である空いているクラスタであって更新後のファイル内容を格納する予定のクラスタの番号である６が、新リンク開始クラスタ番号として設定されており、処理ステータスに”１２”が設定されている状態を示している。
【０１０１】
図２５は、ファイル更新処理におけるステップＳ１７０７の実行後のデータ状態を例示する図である。同図は、図２４に続いた状態を示している。
この図２５は、ステップＳ１７０４により、情報記録媒体３６０内の６番目〜９番目のクラスタに、更新後のファイル内容を構成するデータが記録され、これに対応してステップＳ１７０５によりメインＦＡＴの６番目〜９番目のＦＡＴエントリに、６番目〜９番目のクラスタが連続していることを示すような値が設定されており、また、ステップＳ１７０６によりエントリ情報中のファイルサイズが６０ＫＢに更新され、ステップＳ１７０７により処理ステータスに”１３”が設定された状態を示している。
【０１０２】
また、図２６は、ファイル更新処理が完了した後のデータ状態を例示する図である。同図は、図２５に続いた状態を示している。
この図２６では、ステップＳ１７０８によりメインＦＡＴ上から更新前のファイル内容を構成するデータが格納されていたクラスタに係るリンクが解放され、即ち、３番目、４番目及び５番目の各クラスタに対応するメインＦＡＴ上のＦＡＴエントリの内容が０にクリアされており、処理ステータスに”１４”が設定されている。
【０１０３】
なお、メインＦＡＴ上のリンクの解放中に処理が停止した場合でも、復元処理において正しくそのリンクの解放が行えるように、リンク解放時には復元情報に解放前リンクのクラスタ番号と解放後リンクのクラスタ番号とを格納した後に、解放前リンクのクラスタ番号を解放する。例えばクラスタ番号３、４、５のリンクを解放する場合、復元情報に３、４を格納した後、メインＦＡＴ上のクラスタ番号３に対応するＦＡＴエントリに空き領域を示す０を設定する。次に、復元情報を４、５に変更した後、メインＦＡＴ上のクラスタ番号４に対応するＦＡＴエントリに位置を空き領域を示す０を設定する。最後に復元情報を５、０ｘＦＦＦに設定した後、メインＦＡＴ上のクラスタ番号５に対応するＦＡＴエントリに空き領域を示す０を設定し、復元情報に０を設定する。この手順によりメインＦＡＴの解放を行うことで、解放の途中で処理が停止した場合でも、次回の復元処理において解放を続行することができるようになる。このような手順でのリンクの解放により図２６では、復元情報に０が設定されている。
【０１０４】
図２７は、情報処理装置１３００による管理情報記録処理を示すフローチャートである。
同図に示すように、情報処理装置１３００は、まず、メインＦＡＴを情報記録媒体３６０内のＦＡＴの領域にコピーすることでＦＡＴを更新する（ステップＳ２１０１）。ＦＡＴの領域へのコピーは、詳細に言えばＦＡＴ１とＦＡＴ２との両方へのコピーのことである。ＦＡＴの更新に続いて、情報処理装置１３００は、ファイルについてのＲＡＭ１３４０内のオープンファイル情報に含まれるエントリ情報を、情報記録媒体３６０内の対応するファイルのディレクトリエントリに反映させるよう書込みを行い（ステップＳ２１０２）、オープンファイル情報をクリアして処理ステータスに０を設定し（ステップＳ２１０３）、管理情報記録処理を終了する。
【０１０５】
以下、情報処理装置１３００においてファイル処理プログラム１３３１の一部により実現される復元処理について説明する。
図２８は、情報処理装置１３００による復元処理を示すフローチャートである。
情報処理装置１３００は、復元処理を開始すると、まず、ＲＡＭ１３４０に保持されている各オープンファイル情報に、順番に着目し、その中の処理ステータスを判別する（ステップＳ２２０１）。判別の結果、処理ステータスに応じて、ステップＳ２２０２、ステップＳ２２０４又はステップＳ２２０６を行う。
【０１０６】
ステップＳ２２０１の判別の結果、その処理ステータスが”１２”であれば、その着目しているオープンファイル情報内の復元情報における新リンク開始クラスタ番号を参照して、メインＦＡＴ１３４１上のそのクラスタ番号に対応するＦＡＴエントリから始まるリンクを解放し（ステップＳ２２０２）、処理ステータスに”１１”を設定する（ステップＳ２２０３）。
【０１０７】
なお、ステップＳ２２０２におけるリンクの解放途中で処理の実行が停止した場合であっても正しくリンクの解放が再開できるように、リンク解放の際には復元情報の新リンク開始クラスタ番号を更新して、解放前のクラスタ番号と解放後のクラスタ番号とを格納した後に、解放前として格納したクラスタ番号を０で上書きする。例えば３番、４番、５番のクラスタのリンクを解放する場合には、まず復元情報に３、４を格納した後、メインＦＡＴ上の３番のクラスタに対応するＦＡＴエントリに空き領域を示す０を設定し、次に、復元情報を４、５に変更した後、メインＦＡＴ上の４番のクラスタに対応するＦＡＴエントリに０を設定し、最後に復元情報を５、０ｘＦＦＦに設定した後で、メインＦＡＴ上の５番のクラスタに対応するＦＡＴエントリに０を設定する。この手順でメインＦＡＴ上のリンクの解放を行うことにより、解放途中で処理の実行が停止した場合であっても、次回の復元処理において解放を続行することができるようになる。
【０１０８】
ステップＳ２２０１の判別の結果、その処理ステータスが”１３”であれば、その着目しているオープンファイル情報内の復元情報における更新開始クラスタ番号を参照して、メインＦＡＴ１３４１上のそのクラスタ番号に対応するＦＡＴエントリから始まるリンクを解放し（ステップＳ２２０４）、処理ステータスに”１４”を設定する（ステップＳ２２０５）。なお、ステップＳ２２０４においても、ステップＳ２２０２と同様に、リンク解放の際には復元情報の更新開始クラスタ番号を更新して、解放前のクラスタ番号と解放後のクラスタ番号とを格納してから、解放前として格納したクラスタ番号を０で上書きする手順を用いて、リンクの解放を行う。
【０１０９】
ステップＳ２２０３又はステップＳ２２０５が終了した後、或いは着目しているオープンファイル情報の処理ステータスが”０”、”１１”、”１４”のいずれかであった場合には、情報処理装置１３００は、全てのオープンファイル情報について既に着目したか否かを判定し（ステップＳ２２０６）、未着目のオープンファイル情報があればそれに着目してステップＳ２２０１に戻って処理を行い、全てのオープンファイル情報に着目済みであれば、ＲＡＭ１３４０内のメインＦＡＴの内容を、情報記録媒体３６０内のＦＡＴ１及びＦＡＴ２にコピーする（ステップＳ２２０７）。
【０１１０】
ステップＳ２２０７に続いて情報処理装置１３００は、全てのオープンファイル情報の中から処理ステータスが”１４”であるものを検索して、検索した全てのオープンファイル情報についての各エントリ情報を、情報記録媒体３６０中の対応するファイルのディレクトリエントリに反映させるよう書込みを行い（ステップＳ２２０８）、復元処理を終了する。
【０１１１】
以上の復元処理により、更新後のファイルを構成するデータが情報記録媒体中に記録された後であってかつ、そのデータが格納された位置に関する情報がＲＡＭ中に保持され、つまり、メインＦＡＴ及びエントリ情報によりその位置が表された後においては、その更新後の状態にファイルが復元され、それ以外の場合には、その更新前の状態にファイルが復元される。なお、複数のファイルオープン情報それぞれに着目して個別に処理ステータスに応じてファイルの復元を行うため、複数のファイルが並行的に更新されている場合でも、それぞれにファイルの更新の進行度に応じて適切にファイルを復元すること、即ちファイルを管理するためのＦＡＴやディレクトリエントリを整合する状態になるように再更新することが、可能となる。
＜実施形態３＞
以下、上述の実施形態１で示した情報処理装置３００のファイル更新及び復元に係る機能と、実施形態２で示した情報処理装置１３００のファイル更新及び復元に係る機能とを組み合わせて、ファイル単位で選択的に適用する情報処理装置（以下、「複合情報処理装置」という。）について説明する。
【０１１２】
複合情報処理装置は、情報処理装置３００及び情報処理装置１３００の有する構成要素を兼ね備える。
この複合情報処理装置では、各ファイルを更新対象とする際つまりオープンする際に、ユーザ操作を反映する等したアプリケーションプログラム又はシステムプログラムによって、実施の形態１で示したようなクローズ前は実際には更新が有効とならないタイプか、実施の形態２で示したようなクローズ前であっても最後の更新が有効となるタイプかの選択指定がなされることが想定されている。その選択指定に応じて、複合情報処理装置は、その更新対象とするファイルについて、図７に示した更新処理か図２１に示した更新処理のいずれかを実施する。但し、図２１に示した更新処理におけるファイル更新処理（図２３参照）のステップＳ１７０１は若干修正して適用し、メインＦＡＴのみから空き領域を検索するのではなく、メインＦＡＴ及びサブＦＡＴから空き領域を検索するようにする。
【０１１３】
以下、複合情報処理装置においてファイル処理プログラムにより実現される復元処理について説明する。
図２９は、複合情報処理装置による復元処理を示すフローチャートである。
複合情報処理装置は、復元処理を開始すると、まず、ＲＡＭに保持されている各オープンファイル情報に、順番に着目し、その中の処理ステータスを判別する（ステップＳ２４０１）。判別の結果、処理ステータスに応じて、ステップＳ２４０２、ステップＳ２４０３、ステップＳ２４０４、ステップＳ２４０５又はステップＳ２４０６を行う。
【０１１４】
ステップＳ２４０１の判別の結果、その処理ステータスが”３”であれば、その着目しているオープンファイル情報内のエントリ情報中の開始クラスタ番号のＦＡＴエントリから始まり、内容が０ｘＦＦＦであるＦＡＴエントリまで続くリンクをサブＦＡＴから探して、それらのＦＡＴエントリの内容をメインＦＡＴの同じクラスタに対応するＦＡＴエントリにコピーし、そのサブＦＡＴ中のそれらのＦＡＴエントリの内容を０にクリアし、処理ステータスに”４”を設定する（ステップＳ２４０２）。
【０１１５】
またステップＳ２４０１の判別の結果、処理ステータスが”４”である場合、又は、ステップＳ２４０２を実行した後に、複合情報処理装置は、着目しているオープンファイル情報内のエントリ情報の復元情報が示すところの、更新前のファイル内容を構成するデータの開始クラスタ番号を得て、その開始クラスタ番号に対応するメインＦＡＴ上のＦＡＴエントリからリンクされているＦＡＴエントリ内の値を全て０クリアし、リンクを解放し、処理ステータスに”５”を設定する（ステップＳ２４０３）。
【０１１６】
ステップＳ２４０１の判別の結果、処理ステータスが”１２”であれば、その着目しているオープンファイル情報内の復元情報における新リンク開始クラスタ番号を参照して、メインＦＡＴ上のそのクラスタ番号に対応するＦＡＴエントリから始まるリンクを解放し処理ステータスに”１１”を設定する（ステップＳ２４０４）。
ステップＳ２４０１の判別の結果、処理ステータスが”１３”であれば、その着目しているオープンファイル情報内の復元情報における更新開始クラスタ番号を参照して、メインＦＡＴ上のそのクラスタ番号に対応するＦＡＴエントリから始まるリンクを解放し、処理ステータスに”１４”を設定する（ステップＳ２４０５）。
【０１１７】
ステップＳ２４０３、ステップＳ２４０４又はステップＳ２４０５が終了した後、或いは着目しているオープンファイル情報の処理ステータスが”０”、”１”、”２”、”５”、”１１”、”１４”のいずれかであった場合には、複合情報処理装置は、全てのオープンファイル情報について既に着目したか否かを判定し（ステップＳ２４０６）、未着目のオープンファイル情報があればそれに着目してステップＳ２４０１に戻って処理を行い、全てのオープンファイル情報に着目済みであれば、ＲＡＭ内のメインＦＡＴの内容を、情報記録媒体３６０内のＦＡＴ１及びＦＡＴ２にコピーする（ステップＳ２４０７）。
【０１１８】
ステップＳ２４０７に続いて複合情報処理装置は、全てのオープンファイル情報の中から処理ステータスが”５”又は”１４”であるものを検索して、検索した全てのオープンファイル情報についての各エントリ情報を、情報記録媒体３６０中の対応するファイルのディレクトリエントリに反映させるよう書込みを行い（ステップＳ２４０８）、復元処理を終了する。
＜実施形態４＞
＜構成及び利用データ＞
図３０は、本発明の実施形態４に係る情報処理装置の構成図である。
【０１１９】
実施形態４に係る情報処理装置２３００は、例えば携帯情報端末（ＰＤＡ）や携帯電話機等であり、例えば、ＳＤメモリカード等の半導体メモリカードである情報記録媒体２３７０を装着するためのスロットを備えており、装着された情報記録媒体２３７０中のファイルを編集して更新する機能を有する。なお、ＳＤメモリカードは、松下電器産業（株）、米国サンディスク社、（株）東芝の商標である。
【０１２０】
情報処理装置２３００に装着される情報記録媒体２３７０は、媒体識別子（媒体ＩＤ）２３７１を含んでおり、記録領域として認証領域２３７２と通常領域２３７６とを有しており、更に外部との認証やデータの授受に関する制御を行う制御部２７８０を有している。認証領域は、情報処理装置２３００との間で相互認証を行うために必要なファイル等を記録する領域であって所定のアクセス制限がかけられている領域であり、通常領域は、認証以外に用いられ特にアクセス制限がかけられておらず、画像や音声その他のデータで構成されるファイルを記録する領域である。
【０１２１】
認証領域２３７２及び通常領域２３７６はそれぞれその領域内部に記録されているデータがＦＡＴファイルシステムにより管理されており、認証領域２３７２は、ＦＡＴ２３７３、ルートディレクトリエントリ２３７４及びデータ領域２３７５を含み、通常領域２３７６は、ＦＡＴ２３７７、ルートディレクトリエントリ２３７８及びデータ領域２３７９を含む。
【０１２２】
この情報処理装置２３００は、図３０に示すように、ＣＰＵ３１０、主電源３２０、不揮発性メモリ２３３０、ＲＡＭ２３４０、補助電源３５０を備え、また特に図示はしていないが、キーやボタン等を介してユーザ操作を受け付ける入力インタフェースや、ユーザに情報を提示するためのディスプレイ等をも備えている。なお、情報処理装置２３００の構成要素のうち、情報処理装置３００と構成要素と同じものには図５と同じ符号で示しており、ここでは詳しい説明は省略する。
【０１２３】
ここで、不揮発性メモリ２３３０は、ＣＰＵ３１０上で動作するプログラムを格納しているメモリであり、特に、情報記録媒体２３７０からその媒体固有の媒体ＩＤを取得するための媒体ＩＤ取得プログラム２３３１と、認証領域におけるファイルの更新及び復元に関する処理を実現するための認証ファイル処理プログラム２３３２と、通常領域におけるファイルの更新及び復元に関する処理を実現するための通常ファイル処理プログラム２３３３とを格納しており、図示しないアプリケーションプログラムやシステムプログラム等も格納している。
【０１２４】
ＲＡＭ２３４０は、電池等である補助電源３５０から常時電力の供給を受けてデータを常時保持するメモリであり、たとえ主電源３２０から情報処理装置２３００の各部への電力供給が停止したとしてもこのＲＡＭ２３４０内のデータは保持され続ける。
このＲＡＭ２３４０内には、情報記録媒体２３７０から媒体ＩＤ取得プログラム２３３１により取得された媒体ＩＤを値として設定される媒体情報２３４１と、認証領域におけるデータの物理的な格納位置を示す認証メインＦＡＴ２３４２と、ファイルの更新により新たに認証領域に記録されたデータの物理的な格納位置を示す認証サブＦＡＴ２３４３と、通常領域におけるデータの更新作業に用いるための通常メインＦＡＴ２３４５と、認証領域内の更新対象のファイル毎に対応した認証オープンファイル情報２３４４と、通常領域内の更新対象のファイル毎に対応した通常オープンファイル情報２３４６とが格納される。認証メインＦＡＴ２３４２、認証サブＦＡＴ２３４３及び通常メインＦＡＴ２３４５は、情報記録媒体３６０におけるクラスタ単位でのデータの格納位置を示すことになる。
【０１２５】
ここで、認証オープンファイル情報２３４４は、実施形態１で示したオープンファイル情報３４３と同様のデータ形式であり、エントリ情報２３６１、処理ステータス２３６２及び復元情報２３６３を含む。また、通常オープンファイル情報２３４６は、実施形態２で示したオープンファイル情報１３４３と同様のデータ形式であり、エントリ情報２３６４、処理ステータス２３６５及び復元情報２３６６を含む。
【０１２６】
＜動作＞
以下、上述した情報処理装置２３００の動作について説明する。
情報処理装置２３００は、ＣＰＵ３１０による各プログラムの実行により、ユーザによる電源ボタンの押下等に対応して主電源３２０が電力の供給を開始した時点つまり装置が起動された時点から、前回の起動時においてファイルの更新が完了しないで電源断等により異常終了していた場合には後述の復元処理を実行し、その後に情報記録媒体２３７０が装着されている状態になったときに、更新準備処理を行い、その後に、各ファイルについて、更新処理を行う。
【０１２７】
なお、更新準備処理として、情報処理装置２３００は、情報記録媒体２３７０が装着されている状態になったときに、まずＣＰＵ３１０により媒体ＩＤ取得プログラム２３３１を実行し、この媒体ＩＤ取得プログラム２３３１の実行により、情報処理装置２３００は、情報記録媒体２３７０の制御部２７８０との間で予め定められた認証手順に従って相互認証を行い、認証に成功した場合即ち、正当な情報処理装置と正当な情報記録媒体との関係が満たされた場合に、制御部２７８０を介して情報記録媒体２３７０中の媒体ＩＤ２３７１を取得してＲＡＭ２３４０に媒体情報２３４１として格納する。続いて更新準備処理として、情報処理装置２３００は、情報記録媒体２３７０中のＦＡＴ２３７３をＲＡＭ２３４０中の認証メインＦＡＴ２３４２にコピーして、情報記録媒体２３７０中のＦＡＴ２３７７をＲＡＭ２３４０中の通常メインＦＡＴ２３４５にコピーして、認証オープンファイル情報の内容及び通常オープンファイル情報の内容を全て無効化する。
【０１２８】
また、更新処理としては、情報処理装置２３００は、認証領域中のファイルを更新対象とする場合には、認証メインＦＡＴ２３４２、認証サブＦＡＴ２３４３及び認証オープンファイル情報２３４４を用いて、認証ファイル処理プログラム２３３２の実行により、実施形態１で示した更新処理と同様の処理を行う（図７、図８、図１０、図１２、図１７参照）。ここで、認証メインＦＡＴ２３４２は、メインＦＡＴ３４１に対応し、認証サブＦＡＴ２３４３はサブＦＡＴ３４２に対応し、認証オープンファイル情報２３４４はオープンファイル情報３４３に対応する。また、情報処理装置２３００は、通常領域中のファイルを更新対象とする場合には、通常メインＦＡＴ２３４５及び通常オープンファイル情報２３４６を用いて、通常ファイル処理プログラム２３３３の実行により、実施形態２で示した更新処理と同様の処理を行う（図２１〜図２３、図２７参照）。ここで、通常メインＦＡＴ２３４５は、メインＦＡＴ１３４１に対応し、通常オープンファイル情報２３４６はオープンファイル情報１３４３に対応する。
【０１２９】
以下、情報処理装置２３００において実行される復元処理について説明する。
復元処理は、前回の起動中に主電源の遮断等によりファイル更新が完了しないで途中において停止していた場合に、次に主電源から電力が供給できるようになった後、例えば主電源である電池が再充電されてユーザにより電源オンにする操作がなされた後、に実行される処理である。
【０１３０】
図３１は、情報処理装置２３００による復元処理を示すフローチャートである。
情報処理装置２３００は、復元処理を開始すると、まず、情報記録媒体２３７０から制御部２７８０を介して媒体ＩＤを読み出し（ステップＳ３１０１）、その読み出した媒体ＩＤと、前回の起動中になされた更新準備処理によりＲＡＭ２３４０に格納されている媒体情報２３４１とを比較し、両者が一致するかを判定する（ステップＳ３１０２）。もし一致しなければ、前回、ファイルの更新を行った情報記録媒体と別個の情報記録媒体が現在装着されていることになるので、特にファイルの復元をすることなく、復元処理を終了する。
【０１３１】
また、ステップＳ３１０２において、両者が一致すると判定した場合には、情報処理装置２３００は、認証ファイル処理プログラム２３３２の一部を実行して認証領域についての復元処理を実施する（ステップＳ３１０３）。このステップＳ３１０３における認証領域についての復元処理は、実施形態１で示した復元処理（図１９参照）と同様の処理である。
【０１３２】
ステップＳ３１０３に続いて、情報処理装置２３００は、通常ファイル処理プログラム２３３３の一部を実行して通常領域についての復元処理を実施する（ステップＳ３１０４）。このステップＳ３１０４における通常領域についての復元処理は、実施形態２で示した復元処理（図２８参照）と同様の処理である。
＜変形例＞
以下、実施形態１〜４で示した情報処理装置における復元処理の変形例について説明する。
【０１３３】
図３２は、復元処理の変形例である復元選択処理を示すフローチャートである。
実施形態１〜４で示した復元処理を、図３２の復元選択処理に置き換えることができる。
この変形例に係る情報処理装置（以下、「変形情報処理装置」という。）は、ＲＡＭ内の全てのオープンファイル情報における処理ステータスが０であるか否かを判定し（ステップＳ３２０１〜Ｓ３２０３）、いずれも０であれば更新処理が途中で停止したのではないことを意味するので、復元選択処理を終了する。
【０１３４】
また、１つでも処理ステータスが０以外のオープンファイル情報があれば、変形情報処理装置は、復元用の情報が存在する旨をディスプレイに表示し（ステップＳ３２０４）、復元を実行するか復元用の情報を破棄するかをユーザに選択させるための表示を行って、ユーザからその選択を受け付ける（ステップＳ３２０５）。なお、復元用の情報は、ＲＡＭ上のメインＦＡＴとオープンファイル情報と、もし存在すればサブＦＡＴとである。
【０１３５】
受け付けた選択が、復元する旨であれば（ステップＳ３２０６）、変形情報処理装置は、各実施形態において示した復元処理を実行し（ステップＳ３２０７）、復元選択処理を終了する。また、受け付けた選択が、復元用の情報を破棄する旨であれば、変形情報処理装置は、復元用の情報を０でクリアし（ステップＳ３２０８）、復元選択処理を終了する。
【０１３６】
このように、復元選択処理によれば、ユーザが復元の実行可否を選択できるので、更新の際と復元の際とで情報記録媒体が相違するような場合や、更新後に情報記録媒体が一旦取り外されて他の情報処理装置によって書き換えられて再度もとの情報処理装置に装着されたような場合等、つまり復元処理が有効に機能しない場合において、復元処理が実行されることをユーザが抑止することができるようになる。
＜補足＞
以上、本発明に係るファイル更新装置について、実施形態に基づいて説明したが、本発明は、勿論これらの実施形態に限られない。以下、実施形態の変形に関して説明する。
（１）実施形態１では、ファイルの更新後であってもクローズ指示取得前であれば、復元処理においてその更新後のファイル内容を構成するデータの位置を示すように情報記録媒体中のＦＡＴやディレクトリエントリの更新を実施することはない例を示したが、クローズ指示取得前であっても更新後のファイル内容を構成するデータの位置を示すようにＲＡＭ内のサブＦＡＴ情報やオープンファイル情報が記録されていれば、復元処理においてその更新後のデータ位置を示すようにＦＡＴやディレクトリエントリを更新することとしてもよいし、更新途中で停止した際の進行状況がクローズ指示取得前であったとしても、復元処理においてファイル内容の更新をＦＡＴ等に反映するか、それとも反映させないかをユーザに選択させて、その選択に応じた復元を行うこととしてもよい。
（２）実施形態１等で示した主電源３２０は、充電式電池に限られず、家屋の壁コンセントから電力を取得してその電力を情報処理装置３００内の各部及び情報記録媒体３６０に供給する機構であることとしてもよい。また、補助電源３５０も、主電源３２０とは独立して電力を供給することができる電源であれば、必ずしも一次電池である必要はない。
（３）実施形態１等では、ファイルシステムとしてＦＡＴファイルシステムを使用する場合におけるファイルの更新及び復元の方法を示したが、ファイルシステムはこれに限定されることなく例えばＦＡＴ３２ファイルシステム等を使用する場合にも同様の更新及び復元の方法を用いることができる。また、情報記録媒体の記憶容量は６４ＭＢに限られることはなく、1クラスタのサイズも１６ＫＢに限られることはない。また、ＦＡＴエントリの値として０が未使用のクラスタを示すこととしたが、０以外の数値をこの意味で用いることとしてもよく、また０ｘＦＦＦがリンクの終端であるクラスタを示すこととしたが、０ｘＦＦＦ以外の数値をこの意味で用いることとしてもよい。
（４）実施形態１等では、補助電源により常時電源が供給されるＲＡＭ内に、復元用情報つまりファイルの復元に必要な情報を、保持することとしたが、主電源に電源が供給されない状態でも、保持している復元用情報が消えないようなものであれば、他の種類の記録媒体、例えば不揮発性メモリ等に、復元用情報を保持することとしてもよい。
【０１３７】
また、情報記録媒体は、フラッシュメモリであってもよい。特に、情報記録媒体がフラッシュメモリであって、復元用情報を格納するメモリは、そのフラッシュメモリよりアクセスが高速にできるものであれば、フラッシュメモリ中のファイルの更新の際において、復元のためだけに有用な情報の記録に要する時間を、より短くすることが可能になる。
（５）実施形態２では、ファイル先頭から上書き更新する場合について説明したが（図２３参照）、ファイル内の任意の位置を上書き更新する場合、或いはファイルにデータを追記する場合についても同様の手順で処理することとしてもよい。
【０１３８】
また、実施形態２では、ファイル更新処理において、新データ書込み用に空き領域を取得し、新データを書込む場合について説明したが、一旦ファイル更新処理が開始された後は、古いデータを破壊しても構わないときに、空き領域を取得せずに古いデータの上に直接上書きをしてもよい。
（６）実施形態４では情報記録媒体から媒体ＩＤを取得して、更新の際と復元の際とで情報処理装置に装着されている記録媒体が同一のものであるか否かを判定することとしたが、個々の情報記録媒体に固有な媒体ＩＤに限られず、情報記録媒体の特定位置に格納されている情報のハッシュ値等を用いて記録媒体の同一性を判定することとしてもよい。
（７）実施形態１〜４及び変形例で示した情報処理装置の処理手順（図７等のフローチャートに示した手順等）を、コンピュータ等に実行させるためのコンピュータプログラムを、記録媒体に記録し又は各種通信路等を介して、流通させ頒布することもできる。このような記録媒体には、ＩＣカード、光ディスク、フレキシブルディスク、ＲＯＭ等がある。流通、頒布されたコンピュータプログラムは、コンピュータ等にインストール等されることにより利用に供され、そのコンピュータ等は当該コンピュータプログラムを実行して、実施形態１〜４や変形例で示したような更新処理、復元処理、復元選択処理等を行うことができるようになる。
【産業上の利用可能性】
【０１３９】
本発明に係るファイル更新装置は、記録媒体に記録されているファイルの更新途中において電源断等で更新が停止してしまった場合において、適切にファイルを復元することを可能にする装置であり、ファイルを扱う各種の情報処理装置において利用可能である。
【図面の簡単な説明】
【０１４０】
【図１】あるＦＡＴファイルシステムにおける記憶領域内のデータ構造を示す図である。
【図２】ファイルの管理情報であるディレクトリエントリを示す図である。
【図３】ＦＡＴを示す図である。
【図４】ファイル内容を構成するデータを示す図である。
【図５】本発明の実施形態１に係る情報処理装置の構成図である。
【図６】情報記録媒体３６０の内容例、及び、更新準備処理がなされた後におけるＲＡＭ３４０の内容例を示す図である。
【図７】情報処理装置３００による更新処理の概要を示すフローチャートである。
【図８】情報処理装置３００によるオープン処理を示すフローチャートである。
【図９】オープン処理後のデータ状態を例示する図である。
【図１０】情報処理装置３００による更新後データ記録処理を示すフローチャートである。
【図１１】更新後データ記録処理後のデータ状態を例示する図である。
【図１２】情報処理装置３００によるクローズ処理を示すフローチャートである。
【図１３】クローズ処理におけるステップＳ９０３の実行後のデータ状態を例示する図である。
【図１４】複数のファイルが更新対象とされ、並行的に、更新処理が実施されている状況におけるメインＦＡＴの更新の様子を示す図である。
【図１５】クローズ処理におけるステップＳ９０５の実行後のデータ状態を例示する図である。
【図１６】クローズ処理が終了後のデータ状態を例示する図である。
【図１７】情報処理装置３００による管理情報記録処理を示すフローチャートである。
【図１８】管理情報記録処理の実行後のデータ状態を例示する図である。
【図１９】情報処理装置３００による復元処理を示すフローチャートである。
【図２０】本発明の実施形態２に係る情報処理装置の構成図である。
【図２１】情報処理装置１３００による更新処理の概要を示すフローチャートである。
【図２２】情報処理装置１３００によるオープン処理を示すフローチャートである。
【図２３】情報処理装置１３００によるファイル更新処理を示すフローチャートである。
【図２４】ファイル更新処理におけるステップＳ１７０３の実行後のデータ状態を例示する図である。
【図２５】ファイル更新処理におけるステップＳ１７０７の実行後のデータ状態を例示する図である。
【図２６】ファイル更新処理が完了した後のデータ状態を例示する図である。
【図２７】情報処理装置１３００による管理情報記録処理を示すフローチャートである。
【図２８】情報処理装置１３００による復元処理を示すフローチャートである。
【図２９】複合情報処理装置による復元処理を示すフローチャートである。
【図３０】本発明の実施形態４に係る情報処理装置の構成図である。
【図３１】情報処理装置２３００による復元処理を示すフローチャートである。
【図３２】復元処理の変形例である復元選択処理を示すフローチャートである。
【符号の説明】
【０１４１】
３００、１３００、２３００    情報処理装置
３１０    ＣＰＵ
３２０    主電源
３３０、１３３０、２３３０    不揮発性メモリ
３３１、１３３１    ファイル処理プログラム
３４０、１３４０、２３４０    ＲＡＭ
３４１、１３４１    メインＦＡＴ
３４２    サブＦＡＴ
３４３、１３４３    オープンファイル情報
３４４、１３４４、２３６１、２３６４    エントリ情報
３４５、１３４５、２３６２、２３６５    処理ステータス
３４６、１３４６、２３６３、２３６６    復元情報
３５０    補助電源
３６０、２３７０    情報記録媒体
３６１    パーティションテーブル
３６２    パーティションブートセクタ
３６３、３６４、２３７３、２３７７    ＦＡＴ
３６５、２３７４、２３７８    ルートディレクトリエントリ
３６６、２３７５、２３７９    データ領域
２３３１    媒体ＩＤ取得プログラム
２３３２    認証ファイル処理プログラム
２３３３    通常ファイル処理プログラム
２３４１    媒体情報
２３４２    認証メインＦＡＴ
２３４３    認証サブＦＡＴ
２３４４    認証オープンファイル情報
２３４５    通常メインＦＡＴ
２３４６    通常オープンファイル情報
２３７１    媒体ＩＤ
２３７２    認証領域
２３７６    通常領域
２７８０    制御部
【図１】
2004157997.tif 000003
【図２】
2004157997.tif 000004
【図３】
2004157997.tif 000005
【図４】
2004157997.tif 000006
【図５】
2004157997.tif 000007
【図６】
2004157997.tif 000008
【図７】
2004157997.tif 000009
【図８】
2004157997.tif 000010
【図９】
2004157997.tif 000011
【図１０】
2004157997.tif 000012
【図１１】
2004157997.tif 000013
【図１２】
2004157997.tif 000014
【図１３】
2004157997.tif 000015
【図１４】
2004157997.tif 000016
【図１５】
2004157997.tif 000017
【図１６】
2004157997.tif 000018
【図１７】
2004157997.tif 000019
【図１８】
2004157997.tif 000020
【図１９】
2004157997.tif 000021
【図２０】
2004157997.tif 000022
【図２１】
2004157997.tif 000023
【図２２】
2004157997.tif 000024
【図２３】
2004157997.tif 000025
【図２４】
2004157997.tif 000026
【図２５】
2004157997.tif 000027
【図２６】
2004157997.tif 000028
【図２７】
2004157997.tif 000029
【図２８】
2004157997.tif 000030
【図２９】
2004157997.tif 000031
【図３０】
2004157997.tif 000032
【図３１】
2004157997.tif 000033
【図３２】
2004157997.tif 000034