(57)【要約】【課題】記録メディアへセッション単位でデータを書込む場合において、書込みが途中で中断されたときでも、書込み済みのファイル本体へアクセスできるようにする。【解決手段】メディアに対してセッション単位にデータを書込む書込み手段と、前記書込み手段が前記メディアに書込んだデータを特定するための情報を記憶する手段と、前記書込み手段が、一のセッションの書込み途中に所定の中断指示に従って前記書込みを中断し、当該セッションをクローズしたときは、前記記憶手段を参照して書込み済みデータに関する管理情報を生成する手段とを備え、前記書込み手段は、前記クローズしたセッションとは別のセッションとして前記管理情報を前記メディアに書込む。【選択図】図１
2008090955.tif 000002
【特許請求の範囲】
【請求項１】
メディアに対してセッション単位にデータを書込む書込み手段と、
前記書込み手段が前記メディアに書込んだデータを特定するための情報を記憶する手段と、
前記書込み手段が、一のセッションの書込み途中に所定の中断指示に従って前記書込みを中断し、当該セッションをクローズしたときは、前記記憶手段を参照して書込み済みデータに関する管理情報を生成する手段とを備え、
前記書込み手段は、前記クローズしたセッションとは別のセッションとして前記管理情報を前記メディアに書込むことを特徴とするメディア書込み装置。
【請求項２】
前記管理情報は、前記一のセッションの書込みにおいて書込みが完了したファイル本体の位置を示すディレクトリレコードと、前記ディレクトリレコードの位置を示すパステーブルとであることを特徴とする請求項１記載のメディア書込み装置。
【請求項３】
前記メディアに書込んだデータを特定するための情報は、
書込み対象のデータに含まれる全てのファイル本体について書込みが完了したか否かと、書込み対象のデータに含まれる全てのディレクトリのディレクトリレコードについて書込みが完了したか否かとを示す書込み成否情報と、
前記書込みが完了したファイル本体の前記メディア上での書込位置を示すファイル情報とを含むことを特徴とする請求項１記載のメディア書込み装置。
【請求項４】
前記メディアに書込んだデータを特定するための情報は、書込み対象のデータに含まれる全ディレクトリについて、それぞれのディレクトリのディレクトリレコードの前記メディア上での書込位置を示す情報と、それぞれのディレクトリ下にある子ディレクトリ及びファイル本体のうち書込みが完了した子ディレクトリのディレクトリレコード及びファイル本体の個数を示す書込み総数とを含むことを特徴とする請求項１記載のメディア書込み装置。
【請求項５】
メディアに対する書込みが中断されたときに、書込みが完了したデータを参照可能にするためのコンピュータプログラムであって、
前記メディアに対してセッション単位にデータを書込むステップと、
前記書込みにおいて前記メディアに書込んだデータを特定するための情報を記憶するステップと、
一のセッションの書込み途中に所定の中断指示に従って前記書込みを中断し、当該セッションをクローズしたときは、前記記憶されたメディアに書込んだデータを特定するための情報を参照して書込み済みデータに関する管理情報を生成するステップと、
前記管理情報を前記クローズしたセッションとは別のセッションとして前記メディアに書込むステップとを行うことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録メディアへデータを書込むための技術に関する。
【背景技術】
【０００２】
従来、ＣＤ（Compact Disk）やＤＶＤ（Digital Versatile Disk）等の記録メディアへデータを書込む方法としては、セッション単位で行うものが知られている。この方法では、一旦書込みを終了した後でも、新たなセッションを追加的に書込むことができ、追記可能となっている。
【０００３】
通常、このようなセッション単位による書込み方法では、セッションの書込みが途中で中断されると、書込み済みデータ内のファイル本体にアクセスできなくなる。これは、データの一部としてファイル本体とともに書込まれるファイル本体の管理情報が不正確なものとなるからである。また、セッションは、中断された時点で正常にクローズされていないため、追記も不可能である。
【０００４】
特許文献１は、セッションの書込みが途中で中断された記録メディアを復旧する技術である。特許文献１では、まず、途中で中断されたセッションを正常にクローズする。その後、再び、新たにオープンしたセッションへ書込みの対象となるデータを書込むことにより、記録メディアを復旧する。
【０００５】
【特許文献１】特開２００３−８５８７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した方法は、中断されたセッションに書込まれたデータを無視して、書込みの対象となるデータを初めから書き直すものである。そのため、書込みの対象となるデータを最初から書込めるだけの空き容量が必要となる。中断されたセッションが占める領域によっては、空き容量が足りなくなり、復旧ができなくなることもある。また、中断されたセッションに書込まれたデータは無視されるので、せっかく書込みが完了したファイル本体は無駄となる。
【０００７】
従って、本発明の目的は、記録メディアへセッション単位でデータを書込む場合において、書込みが途中で中断されたときでも、書込み済みのファイル本体へアクセスできるようにするものである。
【課題を解決するための手段】
【０００８】
本発明の一つの態様に従うメディア書込み装置は、メディアに対してセッション単位にデータを書込む書込み手段と、前記書込み手段が前記メディアに書込んだデータを特定するための情報を記憶する手段と、前記書込み手段が、一のセッションの書込み途中に所定の中断指示に従って前記書込みを中断し、当該セッションをクローズしたときは、前記記憶手段を参照して書込み済みデータに関する管理情報を生成する手段とを備え、前記書込み手段は、前記クローズしたセッションとは別のセッションとして前記管理情報を前記メディアに書込むことを特徴とする。
【０００９】
好適な実施態様では、前記管理情報は、前記一のセッションの書込みにおいて書込みが完了したファイル本体の位置を示すディレクトリレコードと、前記ディレクトリレコードの位置を示すパステーブルとであってもよい。
【００１０】
好適な実施態様では、前記メディアに書込んだデータを特定するための情報は、書込み対象のデータに含まれる全てのファイル本体について書込みが完了したか否かと、書込み対象のデータに含まれる全てのディレクトリのディレクトリレコードについて書込みが完了したか否かとを示す書込み成否情報と、前記書込みが完了したファイル本体の前記メディア上での書込位置を示すファイル情報とを含むものであってもよい。
【００１１】
好適な実施態様では、前記メディアに書込んだデータを特定するための情報は、書込み対象のデータに含まれる全ディレクトリについて、それぞれのディレクトリのディレクトリレコードの前記メディア上での書込位置を示す情報と、それぞれのディレクトリ下にある子ディレクトリ及びファイル本体のうち書込みが完了した子ディレクトリのディレクトリレコード及びファイル本体の個数を示す書込み総数とを含むものであってもよい。
【発明の効果】
【００１２】
本発明により、記録メディアへセッション単位でデータを書込む場合において、書込みが途中で中断されたときでも、書込み済みのファイル本体へアクセスできるようになる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の一実施形態に係るメディア書込み装置について、図面を参照して説明する。
【００１４】
図１は、本実施形態に係るメディア書込み装置１０１の機能構成図である。
【００１５】
メディア書込み装置１０１は、書込みの対象とするデータ（以下、「書込み対象データ」）を記録メディアへ書込む。書込み対象データは、メディア書込み装置１０１が内部に保持するデータであってもよいし、メモリカード等の記録メディア上に記録されているデータであってもよい。また、書込み対象データを書込む記録メディアは、例えば、ＣＤ、ＤＶＤ等である。本実施形態では、メモリカード１０７に記録されたデータを、ＣＤ１０８へ書込む場合を例にあげて説明する。
【００１６】
メディア書込み装置１０１は、例えば、汎用的なコンピュータシステムにより構成され、以下に説明するメディア書込み装置１０１内の個々の機能は、例えば、コンピュータプログラムを実行することにより実現される。また、メディア書込み装置１０１は、この装置単体で実現することもできるし、プリンタ、デジタル複合機、ビューワなど他の装置に組み込み、その装置の一部の機能として実現することもできるし、電子式スチルカメラ、デジタルビデオカメラなどの一部機能を利用して、電子式スチルカメラ、デジタルビデオカメラと組み合わせて実現することもできる。
【００１７】
メディア書込み装置１０１は、コントローラ１０２と、メモリ１０３と、ユーザＩ／Ｆ１０４と、メモリカードリーダ／ライタ１０５と、ＣＤリーダ／ライタ１０６とを備える。
【００１８】
メモリカードリーダ／ライタ１０５は、メモリカード１０７に格納されているデータを読み出し、メモリカード１０７にデータを書き込む。
【００１９】
ＣＤリーダ／ライタ１０６は、ＣＤ１０８に格納されているデータを読み出し、ＣＤ１０８にデータを書き込む。
【００２０】
メモリ１０３は、後述する書込み済情報を記憶する。書込み済情報は、書込み制御部１０２２によって作成され、メモリ１０３に格納される。また、メモリ１０３に格納された書込み済情報は、中断制御部１０２３によって参照される。
【００２１】
ユーザＩ／Ｆ１０４は、ユーザからの書込みの中断を受け付ける。ユーザからの書込み中断の要求を受けたユーザＩ／Ｆ１０４は、その旨をコントローラ１０２へ通知する。
【００２２】
コントローラ１０２は、メディア書込み装置１０１が行う各処理を制御する。コントローラ１０２は、書込み制御部１０２１と、書込み済情報作成部１０２２と、中断制御部１０２３とを備える。
【００２３】
書込み制御部１０２１は、書込み対象データをＣＤ１０８へ書込む書込み処理を行う。例えば、まず、書込み制御部１０２１は、メモリカードリーダ／ライタ１０５を介して、メモリカード１０７から書込み対象データを読出す。読み出した書込み対象データから、書込み制御部１０２１は、後述するようなファイル本体に対する管理情報を生成する。書込み制御部１０２１は、ＣＤリーダ／ライタ１０６を介して、管理情報及び書込み対象データから抽出したファイル本体をＣＤ１０８へ書込むことにより、書込み処理を実行する。
【００２４】
ここで、書込み前のデータ（書込み対象データ）と、書込み後のデータ（ＣＤ１０８に書込まれるデータ）との構造について、図２乃至図６を参照して説明する。
【００２５】
図２は、メモリカード１０７に記録された書込み対象データ２０１の構造の一例を示した図である。
【００２６】
書込み対象データ２０１は、例えば、ディレクトリ構造２０２に示すような階層構造を持ち、ディレクトリとファイル本体との集合からなる。図２の場合は、ディレクトリ構造２０２からわかるように、ルートディレクトリの下には、２つのディレクトリ「ＡＢＣ」と「ＤＥＦ」とがある。また、「ＡＢＣ」の下には、１つの画像ファイル「ＡＢＣ００１．ＪＰＧ」があり、「ＤＥＦ」の下には、３つの画像ファイル「ＤＥＦ００１．ＪＰＧ」と「ＤＥＦ００２．ＪＰＧ」と「ＤＥＦ００３．ＪＰＧ」とがあることを示している。メディア書込み装置１０１は、これらのディレクトリ及びファイル本体の全部をＣＤ１０８へ書込むこともできるし、一部のディレクトリ及びファイル本体を指定して、指定した部分だけＣＤ１０８へ書込むこともできる。本実施形態においては、これらのディレクトリ及びファイル本体の全部をＣＤ１０８へ書込む場合について説明する。
【００２７】
このような階層構造を、論理的なデータ構造として示したものが、ＦＡＴエントリ２０３である。メディア書込み装置１０１は、このＦＡＴエントリ２０３を参照することにより、書込み対象データ２０１を読み出すことができる。
【００２８】
ＦＡＴエントリ２０３に示した符号２０４は、ディレクトリに関する情報（以下、「ディレクトリ情報」）である。ディレクトリ情報２０４には、当該ディレクトリ下にあるディレクトリ又はファイル本体のディレクトリエントリ２０５が含まれる。ディレクトリエントリ２０５は、そのディレクトリ又はファイル本体についてのディレクトリ名又はファイル名、ファイルサイズ、更新日付、ディレクトリ情報２０４の位置又はファイル本体の位置等の情報から構成される。従って、メディア書込み装置１０１は、このディレクトリエントリ２０５を参照することにより、ディレクトリの階層構造とファイル本体の位置とを特定することができる。
【００２９】
ＦＡＴエントリ２０３について詳細に説明すると、ディレクトリ情報２０４としては、ルートディレクトリのディレクトリ情報２０４ａ、「ＡＢＣ」のディレクトリ情報２０４ｂ、「ＤＥＦ」のディレクトリ情報２０４ｃがそれぞれ格納されている。また、ルートディレクトリのディレクトリ情報２０４ａには、「ＡＢＣ」のディレクトリエントリ２０５ａ及び「ＤＥＦ」のディレクトリエントリ２０５ｂが含まれている。同じように、「ＡＢＣ」のディレクトリ情報２０４ｂには、「ＡＢＣ００１．ＪＰＧ」のディレクトリエントリ２０５ｃが、「ＤＥＦ」のディレクトリ情報２０４ｃには、「ＤＥＦ００１．ＪＰＧ」のディレクトリエントリ２０５ｄ、「ＤＥＦ００２．ＪＰＧ」のディレクトリエントリ２０５ｅ、及び「ＤＥＦ００３．ＪＰＧ」のディレクトリエントリ２０５ｆが、それぞれ含まれている。
【００３０】
上述したように、各ディレクトリエントリ２０５には、そのディレクトリ又はファイル本体についてのディレクトリ情報２０４の位置又はファイル本体の位置が含まれる。すなわち、例えば、「ＡＢＣ」のディレクトリエントリ２０５ａには、「ＡＢＣ」のディレクトリ情報２０４ｂの位置が、「ＡＢＣ００１．ＪＰＧ」のディレクトリエントリ２０５ｃには、「ＡＢＣ００１．ＪＰＧ」のファイル本体の位置が、それぞれ含まれている。従って、メディア書込み装置１０１は、ルートディレクトリのディレクトリ情報２０４ａにある「ＡＢＣ」のディレクトリエントリを参照して「ＡＢＣ」のディレクトリ情報２０４ｂの位置を特定し、「ＡＢＣ」のディレクトリ情報２０４ｂにある「ＡＢＣ００１．ＪＰＧ」のディレクトリエントリを参照することにより「ＡＢＣ００１．ＪＰＧ」の位置を特定することができる。
【００３１】
図３は、ＣＤ１０８へ書込まれるデータ３０１の構造の一例を示した図である。
【００３２】
メディア書込み装置１０１は、セッション単位でデータの書込みを行う。すなわち、セッションの開始を示すリードイン３０２と、セッションの終了を示すリードアウトとに囲まれた区間にデータが書込まれる。
【００３３】
ＣＤ１０８に書込まれるデータとしては、ＰＶＤ（Primary Volume Descriptor）３０３と、パステーブル３０４と、ディレクトリレコード３０５と、ファイル本体３０６とがある。パステーブル３０４及びディレクトリレコード３０５は、ファイル本体３０６に対する管理情報３０７であり、ディレクトリの階層構造を表現し、かつファイル本体３０６の位置を特定するための情報である。この管理情報３０７は、通常、書込み対象データ２０１のＦＡＴエントリ２０３を参照して、ディレクトリ情報２０４やディレクトリエントリ２０５から必要な情報を取得することにより生成される。
【００３４】
これらのデータが書込まれる位置は、ＣＤ１０８に割当てられるセクタ番号に基づいて特定される。同図においてセクタ番号を記しているが、これらは、数値として正確なものではなく、説明する上で簡易的に付与したものである。
【００３５】
ＰＶＤ３０３には、ボリュームに関する基本的な記述情報、例えば、ボリューム名や作者名及びパステーブル３０４やルートディレクトリのディレクトリレコード３０５ａの位置等が格納される。図４は、ＰＶＤ３０３の情報要素を具体的に示したものである。同図からわかるように、ＰＶＤ３０３には、パステーブル３０４の位置（セクタ番号２）とルートディレクトリのディレクトリレコード３０５ａの位置（セクタ番号３）とが格納される。
【００３６】
パステーブル３０４には、ボリューム内の全ディレクトリの情報、例えば、ディレクトリ名、当該ディレクトリの親のディレクトリ名、当該ディレクトリのディレクトリレコード３０５の位置等が格納される。図５が、パステーブル３０４の具体的内容を示したものである。例えば、「ＡＢＣ」に着目すると、親のディレクトリは、ルートディレクトリであり、「ＡＢＣ」のディレクトリレコード３０５ｂの位置は、セクタ番号４であることがわかる。すなわち、このパステーブル３０４を参照することにより、直接的に「ＡＢＣ」のディレクトリレコード３０５ｂの位置を特定することができるようになる。後述するが、各ディレクトリレコード３０５には、当該ディレクトリ下にあるディレクトリのディレクトリレコード３０５又はファイル本体３０６の位置が記されており、ルートディレクトリから各サブディレクトリを順に一つずつ辿っていくことによっても、目的のディレクトリ又はファイル本体３０６を検索することができる。「ＡＢＣ」の場合は、ルートディレクトリのディレクトリレコード３０５ａを参照して、「ＡＢＣ」のディレクトリレコード３０５ｂの位置（セクタ番号４）を特定することになる。この網羅的な検索方法では、「ＡＢＣ」のように、階層の浅い位置にあるディレクトリ又はファイル本体３０６を検索する場合は、あまり問題とはならないが、階層の深い位置にある場合は、検索に多くの時間がかかってしまう。そのため、高速にディレクトリを検索するために、パステーブル３０４が利用される。
【００３７】
ディレクトリレコード３０５には、当該ディレクトリ下にある全てのディレクトリ又はファイル本体３０６に関する情報（以下、「詳細情報」）、例えば、そのディレクトリ又はファイル本体３０６についてのディレクトリ名又はファイル名、ファイルサイズ、更新日付、ディレクトリレコード３０５の位置又はファイル本体３０６の位置等が格納される。このディレクトリレコード３０５は、全ディレクトリについて生成され、ＣＤ１０８へ書込まれる。従って、本実施形態の場合は、図３に示すように、ルートディレクトリのディレクトリレコード（以下、「ルートディレクトリレコード」。その他のディレクトリについても同じ。）３０５ａと、ＡＢＣディレクトリレコード３０５ｂと、ＤＥＦディレクトリレコード３０５ｃとが生成され、ＣＤ１０８へ書込まれることになる。
【００３８】
図６が、各ディレクトリレコード３０５の具体的内容を示したものである。同図（ａ）からわかるように、ルートディレクトリレコード３０５ａには、「ＡＢＣ」及び「ＤＥＦ」に関する詳細情報６０１が含まれている。これにより、ルートディレクトリ下には、「ＡＢＣ」及び「ＤＥＦ」があることがわかる。また、詳細情報６０１には、開始セクタ番号が格納される。この開始セクタ番号は、詳細情報６０１がディレクトリに関するものである場合は、そのディレクトリレコード３０５の位置を示し、詳細情報６０１がファイル本体３０６に関するものである場合は、そのファイル本体３０６の位置を示している。従って、「ＤＥＦ」に関する詳細情報６０１ａに格納された開始セクタ番号６は、ＤＥＦディレクトリレコード３０５ｃの位置を示していることになる。同様に、ＡＢＣディレクトリレコード３０５ｂ（同図（ｂ））には、「ＡＢＣ００１．ＪＰＧ」に関する詳細情報６０１ｂが含まれているため、「ＡＢＣ」下には、「ＡＢＣ００１．ＪＰＧ」があることがわかる。さらに、「ＡＢＣ００１．ＪＰＧ」に関する詳細情報６０１ｂに格納された開始セクタ番号５は、「ＡＢＣ００１．ＪＰＧ」のファイル本体（以下、「ＡＢＣ００１．ＪＰＧファイル本体」。その他のファイルについても同じ。）３０６ａの位置を示していることになる。
【００３９】
ファイル本体３０６は、書込み対象データ２０１に含まれるファイル本体そのものである。従って、ＦＡＴエントリ２０３のディレクトリ情報２０４やディレクトリエントリ２０５を参照して抽出されたファイル本体が、そのまま書込まれる。
【００４０】
以上、説明したことからもわかるように、書込み後のデータ３０１においては、管理情報３０７を利用することにより、ファイル本体３０６の位置が特定される。例えば、ＤＥＦ００１．ＪＰＧファイル本体３０６ｂの位置の特定は、以下のように行われる。すなわち、まず、ＰＶＤ３０３を参照して、ルートディレクトリレコード３０５ａの位置（セクタ番号３）を取得する。次に、ルートディレクトリレコード３０５ａを参照して、ＤＥＦディレクトリレコードの位置（セクタ番号６）を取得する。そして、ＤＥＦディレクトリレコード３０５ｃを参照して、ＤＥＦ００１．ＪＰＧファイル本体３０６ｂの位置（セクタ番号７）が特定される。また、次のような方法もある。すなわち、ＰＶＤ３０３を参照して、パステーブル３０４の位置（セクタ番号２）を取得する。パステーブル３０４を参照して、ＤＥＦディレクトリレコード３０５ｃの位置（セクタ番号６）を取得し、ＤＥＦディレクトリレコード３０５ｃからＤＥＦ００１．ＪＰＧファイル本体３０６ｂの位置（セクタ番号７）を特定する。
【００４１】
もし、書込みが途中で中断された場合は、管理情報３０７は、書込まれなかったディレクトリレコード３０５やファイル本体３０６の情報まで含んでしまい、不正確なものとなる。そのため、その後当該セッションをクローズしたとしても、この管理情報３０７は、利用できなくなり、ファイル本体３０６へのアクセスは、できなくなってしまう。
【００４２】
本実施形態に係るメディア書込み装置１０１は、書込みが途中で中断された場合でも、書込み済みのファイル本体３０６へのアクセスを行えるようにするものである。すなわち、メディア書込み装置１０１は、中断されるまでに書込みが完了したファイル本体３０６を参照できるように管理情報３０７を再生成する。メディア書込み装置１０１は、この再生成された管理情報（以下、「適正な管理情報」）を、新たなセッションへ書込んで、書込み済みのファイル本体３０６へアクセスできるようにする。
【００４３】
図１に戻り、以下、適正な管理情報を生成する方法について説明する。
【００４４】
書込み済情報作成部１０２２は、適正な管理情報を生成するために必要となる情報（以下、「書込み済情報」）を作成する。書込み済情報とは、ＣＤ１０８への書込みが完了したファイル本体３０６を特定するための情報である。例えば、中断されるまでに書込みが完了したディレクトリレコード３０５及びファイル本体３０６を示す情報と、ファイル本体３０６の位置情報とが含まれる。この中断されるまでに書込みが完了したディレクトリレコード３０５及びファイル本体３０６を示す情報は、例えば、書込みが完了したディレクトリ名又はファイル名をリストとして保持するものであってもよいし、書込み対象データ２０１に含まれる全ディレクトリ及びファイル本体３０６について書込みが行われたか否かの情報であってもよい。また、書込みが完了したファイル本体３０６の位置情報は、そのファイル本体３０６の開始セクタ番号を特定できるものであればよい。
【００４５】
図７は、書込み済情報７０１の一例を示した図である。同図は、図３に示すように、ＤＥＦ００２．ＪＰＧファイル本体の書込み途中で書込みが中断されたときの書込み済情報７０１を示している。同図においては、書込み対象データ２０１に含まれる全ディレクトリについて個々に書込み済情報７０１が作成されている。ルートディレクトリ書込み済情報７０１ａ（同図（ａ））は、ルートディレクトリに関する書込み済情報である。同様に、ＡＢＣ書込み済情報７０１ｂ（同図（ｂ））、ＤＥＦ書込み済情報７０１ｃ（同図（ｃ））は、それぞれ「ＡＢＣ」に関する書込み済情報、「ＤＥＦ」に関する書込み済情報である。各書込み済情報７０１には、当該ディレクトリのディレクトリレコード３０５について書込みが完了したか否かを示す情報（以下、「書込み成否情報」）７０２が格納される。同図では、全てのディレクトリに関して書込み成否情報７０２が、「書込み済み」となっている。これにより、全てのディレクトリのディレクトリレコード３０５について書込みが完了していることがわかる。また、各書込み済情報７０１には、当該ディレクトリ下にあるファイル本体３０６について書込みが完了したか否かを示す情報と、そのファイル本体３０６の位置を示す開始セクタ番号とからなる情報（以下、「ファイル情報」）７０３が格納される。例えば、ＤＥＦ書込み済情報７０１ｃのファイル情報７０３ｃについて見ると、「ＤＥＦ００１．ＪＰＧ」には、開始セクタ番号が格納されている。これにより、ＤＥＦ００１．ＪＰＧファイル本体について書込みが完了していることがわかり、その開始セクタ番号は７であることがわかる。一方、「ＤＥＦ００２．ＪＰＧ」及び「ＤＥＦ００３．ＪＰＧ」に関しては、開始セクタ番号が格納されていない。これにより、これらのファイル本体３０６については書込みが完了しなかったこともわかる。
【００４６】
また、符号７０１'で示したような書込み済情報も考えられる。この書込み済情報７０１'では、当該ディレクトリ下にあるディレクトリのディレクトリレコード３０５及びファイル本体３０６のうち、書込みが行われたディレクトリレコード３０５及びファイル本体３０６の総数（以下、「書込み総数」）７０４と、当該ディレクトリのディレクトリレコードの開始セクタ番号（以下、「先頭開始セクタ番号」）７０５とが格納される。通常、書込み対象データ２０１をＣＤ１０８へ書込む場合には、ＦＡＴエントリ２０３の構成に基づいて、書込まれるデータ３０１の構造が確定する。すなわち、ＦＡＴエントリ２０３を参照することにより、ディレクトリレコード３０５及びファイル本体３０６がどのような配置で書込まれたかを知ることができる。従って、書込み総数７０４及び先頭開始セクタ番号７０５がわかれば、ＦＡＴエントリ２０３を参照して、中断されるまでに書込みが完了したディレクトリレコード３０５及びファイル本体３０６を示す情報と、ファイル本体３０６の位置情報とを知ることができる。具体的には、例えば、ディレクトリレコード３０５に含まれる複数の詳細情報６０１の格納順序は、ディレクトリ情報２０４に含まれるディレクトリエントリ２０５の格納順序に従って決められる。そのため、当該ディレクトリについての書込み総数７０４を見ることにより、どのディレクトリレコード３０５又はファイル本体３０６まで書込みが行われたかがわかることになる。また、ディレクトリレコード３０５のサイズは固定であり、また、ファイル本体３０６のサイズは、対応するディレクトリエントリ２０５を参照することにより知ることができる。上述したように、ディレクトリレコード３０５及びファイル本体３０６の配置もＦＡＴエントリ２０３によりわかるので、先頭開始セクタ番号７０５からファイル本体３０６の位置を特定することができることになる。このように、書込み総数７０４及び先頭開始セクタ番号７０５により書込み済情報７０１'を構成することにより、書込み済情報７０１に比較して、必要な情報量を小さくすることができ、メモリ１０３の使用量を削減することができる。
【００４７】
再び図１に戻る。書込み済情報作成部１０２２は、上述した書込み済情報７０１を作成した後、メモリ１０３に格納する。書込み済情報７０１は、ディレクトリレコード３０５又はファイル本体３０６が書込まれる度に、その内容が更新されるので、その都度、書込み済情報作成部１０２２は、メモリ１０３に格納された書込み済情報を更新する。
【００４８】
中断制御部１０２３は、書込み処理が途中で中断されたときに、適正な管理情報を生成して、それを新たなセッションに書込む。書込み処理の中断は、例えば、ユーザＩ／Ｆ１０４を介して受けた書込みの中断要求又は書込みエラー等によって発生する。
【００４９】
上述したように、適正な管理情報とは、中断されるまでに書込みが完了したファイル本体３０６を参照できるようにした管理情報（パステーブル３０４及びディレクトリレコード３０５）である。適正な管理情報の生成は、メモリに格納された書込み済情報７０１を参照して行われる。以下、図３に示すように、ＤＥＦ００２．ＪＰＧファイル本体の書込み途中で書込みが中断された場合を例にして、適正な管理情報の生成方法及びその構造について、図８乃至図１１を参照して説明する。
【００５０】
図８は、中断後新たに書込まれるデータ８０１の構造の一例を示す図である。
【００５１】
上述したように、適正な管理情報８０８は、新たなセッション（ここでは第２セッション）に書込まれる。そのため、まず、第１セッションの最後にリードアウト８０２が書込まれ、第１セッションがクローズされる。また、第２セッションがオープンされ、リードイン８０３とリードアウト８０７とに囲まれた区間にデータが書込まれる。新たに書込まれるデータは、ＰＶＤ８０４と、適正な管理情報８０８（パステーブル８０５及びディレクトリレコード８０６）とになる。
【００５２】
ＰＶＤ８０４の内容を図９に示す。ＰＶＤ８０４には、パステーブル及びルートディレクトリレコードの位置情報が含まれるが、ここには、新たに第２セッションに書込まれたパステーブル８０５及びルートディレクトリレコード８０６ａの位置情報が格納される。すなわち、パステーブル８０５の開始セクタ番号１２及びルートディレクトリレコード８０６ａの開始セクタ番号１３がそれぞれ格納される。
【００５３】
パステーブル８０５の内容を図１０に示す。パステーブル８０５の内容は、中断されるまでに書込みが完了したディレクトリレコード３０５に依存して変わる。例えば、ＤＥＦディレクトリレコード３０５ｃが書込まれなかった場合には、再生成されたパステーブル８０５は、「ＤＥＦ」の項目がないものとなる。従って、このパステーブル８０５に含むべきディレクトリを特定するために、書込み済情報７０１が参照される。各ディレクトリに関する書込み済情報７０１の書込み成否情報７０２を見ると、全てのディレクトリ（ルートディレクトリ、「ＡＢＣ」、「ＤＥＦ」）のディレクトリレコード３０５について書込みが完了していることがわかる。従って、パステーブル８０５には、全てのディレクトリが含まれることになる。
【００５４】
また、パステーブル８０５には、全ディレクトリに関するディレクトリレコード３０５の位置が格納されるが、ここには、新たに第２セッションに書込まれたディレクトリレコード８０６の位置が格納される。すなわち、ルートディレクトリレコード８０６ａの開始セクタ番号１３、ＡＢＣディレクトリレコード８０６ｂの開始セクタ番号１４、及びDＥＦディレクトリレコード８０６ｃの開始セクタ番号１５がそれぞれ格納される。
【００５５】
ディレクトリレコード８０６の内容を図１１に示す。ディレクトリレコード８０６の内容は、中断されるまでに書込みが完了したディレクトリレコード３０５及びファイル本体３０６に依存して変わる。例えば、ＤＥＦディレクトリレコード３０５ｃが書込まれなかった場合には、再生成されたルートディレクトリレコード８０６ａは、「ＤＥＦ」に関する詳細情報１１０１ａがないものとなる。また、ＤＥＦディレクトリレコード８０６ｃは、生成されない。従って、生成するディレクトリレコード８０６自体及びディレクトリレコード８０６に含むべき詳細情報１１０１を特定するために、書込み済情報７０１が参照される。まず、各ディレクトリに関する書込み済情報７０１の書込み成否情報７０２を見ると、全てのディレクトリ（ルートディレクトリ、「ＡＢＣ」、「ＤＥＦ」）のディレクトリレコード３０５について書込みが完了していることがわかるので、全てのディレクトリについてディレクトリレコード８０６が生成されることになる。
【００５６】
また、各ディレクトリレコード８０６に含むべき詳細情報１１０１は、以下のようにして特定される。すなわち、ディレクトリに関する詳細情報１１０１の場合は、そのディレクトリのディレクトリレコード８０６が生成されたか否か、ファイル本体３０６に関する詳細情報１１０１の場合は、そのファイル本体３０６について書込みが完了したか否かにより特定される。上述したように、書込み済情報７０１による場合は、全てのディレクトリについてディレクトリレコードが生成される。従って、ルートディレクトリレコード８０６ａ（同図（ａ））には、「ＡＢＣ」及び「ＤＥＦ」の詳細情報１１０１が含まれることになる。また、ＡＢＣ書込み済情報７０１ｂのファイル情報７０３ｂを見ると、ＡＢＣ００１．ＪＰＧファイル本体３０６ａについて書込みが完了していることがわかる。従って、ＡＢＣディレクトリレコード８０６ｂ（同図（ｂ））には、ＡＢＣ００１．ＪＰＧファイル本体３０６ａの詳細情報１１０１が含まれることになる。さらに、ＤＥＦ書込み済情報７０１ｃのファイル情報７０３ｃを見ると、ＤＥＦ００１．ＪＰＧファイル本体３０６ｂについて書込みが完了しているが、ＤＥＦ００２．ＪＰＧファイル本体３０６ｃとＤＥＦ００３．ＪＰＧファイル本体とについては、書込みが完了していないことがわかる。従って、ＤＥＦディレクトリレコード８０６ｃ（同図（ｃ））には、ＤＥＦ００１．ＪＰＧファイル本体３０６ｂの詳細情報１１０１が含まれることになる（ＤＥＦ００２．ＪＰＧファイル本体３０６ｃ及びＤＥＦ００３．ＪＰＧファイル本体の詳細情報１１０１は含まれない）。
【００５７】
次に、各詳細情報１１０１に格納される内容であるが、特に、開始セクタ番号は、以下のようにして決められる。すなわち、ディレクトリに関する詳細情報１１０１の場合は、そのディレクトリのディレクトリレコード８０６が新たに書込まれた位置を、開始セクタ番号とする。従って、例えば、「ＤＥＦ」に関する詳細情報１１０１ａの開始セクタ番号には、ＤＥＦディレクトリレコード８０６ｃが書込まれた位置（セクタ番号１５）が格納されることになる。また、ファイル本体３０６に関する詳細情報１１０１の場合は、そのファイル本体３０６が中断前に書込まれたときの位置を、開始セクタ番号とする。従って、この場合は、書込み済情報７０１のファイル情報７０３が参照される。例えば、「ＡＢＣ００１．ＪＰＧ」に関する詳細情報１１０１ｂの開始セクタ番号には、ＡＢＣ００１．ＪＰＧファイル本体３０６ａが中断前に書込まれたときの位置、すなわち第１セッションにあるセクタ番号５が格納される。このＡＢＣ００１．ＪＰＧファイル本体３０６ａの位置は、ＡＢＣ書込み済情報７０１ｂのファイル情報７０３ｂを参照することにより得られる。また、開始セクタ番号以外の内容は、利用できなくなった管理情報３０７と同じである。これは、再度書込み対象データ２０１のＦＡＴエントリ２０３を参照することにより得ることができる。
【００５８】
以下、図１２及び図１３を参照して、書込み処理が中断されたときの動作の流れを説明する。
【００５９】
図１２は、本実施形態に係る書込みが中断されたときの処理を示すフローチャートである。
【００６０】
書込み制御部１０２１が書込みを行っているときに、例えば、ユーザＩ／Ｆが書込み中断の要求を受ける等して、書込み処理が中断される（Ｓ１２０１）。
【００６１】
書込み処理が中断されると、中断制御部１０２２は、書込みが中断されたセッションをクローズする（Ｓ１２０２）。また、中断制御部１０２２は、適正な管理情報８０８を書込むために新たなセッションをオープンする（Ｓ１２０３）。
【００６２】
その後、ＰＶＤ８０４が生成され、新たなセッションへ書込まれる（Ｓ１２０４）。
【００６３】
さらに、適正な管理情報８０８が生成され、新たなセッションへ書込まれる（Ｓ１２０５、Ｓ１２０６）。
【００６４】
最後に、新たなセッションがクローズされ書込みが中断されたときの処理が完了する（Ｓ１２０７）。
【００６５】
また、図１３は、適正な管理情報８０８の生成処理を示すフローチャートである。本処理は、図１２における、Ｓ１２０５に相当する。
【００６６】
中断制御部１０２２は、適正な管理情報８０８を生成する（Ｓ１３０１）。
【００６７】
すなわち、まず、中断制御部１０２２は、書込み済情報７０１を参照して、書込みを行うディレクトリレコード８０６を特定し、パステーブル８０５を生成する（Ｓ１３０２）。
【００６８】
次に、中断制御部１０２２は、書込み対象データ２０１に含まれる一のディレクトリを選択し、そのディレクトリレコード８０６を生成するか否かを判断する（Ｓ１３０３、Ｓ１３０４）。この判断は、上述したように、対応するディレクトリの書込み済情報７０１における書込み成否情報７０２を参照することにより行われる。
【００６９】
選択されたディレクトリについて、ディレクトリレコード８０６を生成する場合は（Ｓ１３０４：ＹＥＳ）、上述したように、書込み済情報７０１を参照して、中断されるまでに書込みが完了したディレクトリレコード３０５及びファイル本体３０６とファイル本体３０６の位置とを取得し、ディレクトリレコード８０６を生成する（Ｓ１３０５）。尚、ディレクトリレコード８０６の生成に際しては、ＦＡＴエントリ２０３も参照される。
【００７０】
選択されたディレクトリについて、ディレクトリレコード８０６を生成しない場合（Ｓ１３０４：ＮＯ）、又はディレクトリレコード８０６の生成が完了した場合は、書込み対象データ２０１に含まれる全ディレクトリについてＳ１３０３〜Ｓ１３０５の処理を行ったか否かを確認する（Ｓ１３０６）。もし、全ディレクトリについて行っていない場合は（Ｓ１３０６：ＮＯ）、全ディレクトリについてＳ１３０３〜Ｓ１３０５の処理を繰り返す。そうでない場合は（Ｓ１３０６：ＹＥＳ）、適正な管理情報８０８の生成処理が完了する（Ｓ１３０７）。
【００７１】
以上、説明したように、適正な管理情報を新たなセッションに書込むことにより、記録メディアへセッション単位でデータを書込む場合において、書込みが途中で中断されたときでも、書込み済みのファイル本体へアクセスできるようになる。
【００７２】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
【００７３】
すなわち、書込み済情報は、本実施形態において示した形式のものには限られない。例えば、適正な管理情報として再生成するディレクトリレコードの形式をそのまま用いることもできる。この場合は、メモリに格納する情報量が大きくなってしまうが、書込み済情報がそのまま適正な管理情報となるため、適正な管理情報の生成にかかる処理負荷は小さくなる。
【図面の簡単な説明】
【００７４】
【図１】本発明の一実施形態に係るメディア書込み装置の機能構成図である。
【図２】本発明の一実施形態に係る書込み対象データの一例である。
【図３】本発明の一実施形態に係るＣＤへ書込まれるデータの一例である。
【図４】本発明の一実施形態に係るＰＶＤの一例である。
【図５】本発明の一実施形態に係るパステーブルの一例である。
【図６】本発明の一実施形態に係るディレクトリレコードの一例である。
【図７】本発明の一実施形態に係る書込み済情報の一例である。
【図８】本発明の一実施形態に係る中断後新たに書込まれるデータの一例である。
【図９】本発明の一実施形態に係る中断後新たに書込まれるＰＶＤの一例である。
【図１０】本発明の一実施形態に係る中断後新たに書込まれるパステーブルの一例である。
【図１１】本発明の一実施形態に係る中断後新たに書込まれるディレクトリレコードの一例である。
【図１２】本発明の一実施形態に係る書込みが中断されたときの処理を示すフローチャートである。
【図１３】本発明の一実施形態に係る適正な管理情報の生成処理を示すフローチャートである。
【符号の説明】
【００７５】
１０１…メディア書込み装置、１０２…コントローラ、１０３…メモリ、１０４…ユーザＩ／Ｆ、１０５…メモリカードリーダ／ライタ、１０６…ＣＤリーダ／ライタ、１０７…メモリカード、１０８…ＣＤ、２０１…書込み対象データ、２０２…ディレクトリ構造、２０３…ＦＡＴエントリ、２０４…ディレクトリ情報、２０５…ディレクトリエントリ、３０１…書込まれるデータ、３０７…管理情報、６０１…詳細情報、７０１…書込み済情報、７０２…書込み成否情報、７０３…ファイル情報、７０４…書込み総数、７０５…先頭開始セクタ番号、８０１…中断後に書込まれるデータ、８０８…適正な管理情報
【図１】
2008090955.tif 000003
【図２】
2008090955.tif 000004
【図３】
2008090955.tif 000005
【図４】
2008090955.tif 000006
【図５】
2008090955.tif 000007
【図６】
2008090955.tif 000008
【図７】
2008090955.tif 000009
【図８】
2008090955.tif 000010
【図９】
2008090955.tif 000011
【図１０】
2008090955.tif 000012
【図１１】
2008090955.tif 000013
【図１２】
2008090955.tif 000014
【図１３】
2008090955.tif 000015