(57)【要約】【課題】記憶媒体に格納されているファイル及びディレクトリを他の記憶媒体へ、選択的に高速でコピーする。【解決手段】各ディレクトリの階層関係を示す階層情報と、各ディレクトリ及び各ファイルの属性情報とを含む検索リストを生成する（Ｓ２１１）。検索リストを参照して、第１の記憶媒体に記憶されているすべてのファイル及びすべてのディレクトリについて、各ディレクトリまたはファイルの属性情報に基づいて、それぞれのディレクトリまたはファイルがコピー対象か否かを判定する（Ｓ２０１及びＳ２０２）この判定によりコピー対象のディレクトリと判定された場合は、そのディレクトリの属性情報に基づいて、第２の記憶媒体にディレクトリを生成する（Ｓ２１２）。コピー対象のファイルと判定された場合は、このファイルの属性情報に基づいて、第２の記憶媒体にファイル本体情報をコピーする（Ｓ２０４）。【選択図】図５
2007094792.tif 000002
【特許請求の範囲】
【請求項１】
階層的なディレクトリ構造で複数のファイルが記憶されている第１の記憶媒体から、対象となるディレクトリ及びファイルを第２の記憶媒体にコピーする装置であって、
前記第１の記憶媒体に格納されているディレクトリ及びファイルのそれぞれについての階層情報及び属性情報を含む、各ディレクトリ及びファイル別の管理情報を含む検索リストのための検索リスト領域と、
前記第１の記憶媒体から、前記各ディレクトリ及びファイル別の管理情報を読み出して、前記検索リスト領域に格納する検索リスト生成手段と、
前記検索リストを参照し、前記第１の記憶媒体に記憶されているすべてのファイル及びすべてのディレクトリについて、各ディレクトリまたはファイルの属性情報に基づいて、それぞれのディレクトリまたはファイルがコピー対象か否かを判定する手段と、
前記判定手段によりコピー対象のディレクトリと判定された場合は、当該ディレクトリの管理情報に基づいて、前記第２の記憶媒体にディレクトリを生成する手段と、
前記判定手段によりコピー対象のファイルと判定された場合は、当該ファイルの管理情報に基づいて、前記第２の記憶媒体にファイル本体情報をコピーする手段と、を備えるコピー装置。
【請求項２】
前記検索リスト生成手段による検索リストの生成と並行して、前記判定手段が前記判定を行うことを特徴とする請求項１記載のコピー装置。
【請求項３】
前記検索リスト領域は、ルートディレクトリに生成されているサブディレクトリ及びファイルの管理情報を格納するためのルート領域と、いずれかのサブディレクトリに生成されているサブディレクトリ及びファイルの管理情報を格納するためのデータ領域とを有し、
前記検索リスト生成手段は、前記いずれかのサブディレクトリに生成されているサブディレクトリ及びファイルの管理情報の容量が、前記データ領域の容量を超えるときは、前記データ領域をサイクリックに利用することを特徴とする請求項２記載のコピー装置。
【請求項４】
前記判定手段は、
前記ディレクトリまたはファイルの属性が、隠し属性及びシステム属性のいずれでもないときに、コピー対象であると判定する請求項１〜３のいずれかに記載のコピー装置。
【請求項５】
階層的なディレクトリ構造で複数のファイルが記憶されている第１の記憶媒体から、対象となるディレクトリ及びファイルを第２の記憶媒体にコピーする方法であって、
各ディレクトリの階層関係を示す階層情報と、各ディレクトリ及び各ファイルの属性情報とを含む検索リストを生成し、
前記検索リストを参照して、前記第１の記憶媒体に記憶されているすべてのファイル及びすべてのディレクトリについて、各ディレクトリまたはファイルの属性情報に基づいて、それぞれのディレクトリまたはファイルがコピー対象か否かを判定し、
前記判定によりコピー対象のディレクトリと判定された場合は、当該ディレクトリの属性情報に基づいて、前記第２の記憶媒体にディレクトリを生成し、
前記判定によりコピー対象のファイルと判定された場合は、当該ファイルの属性情報に基づいて、前記第２の記憶媒体にファイル本体情報をコピーする方法。
【請求項６】
階層的なディレクトリ構造で複数のファイルが記憶されている第１の記憶媒体から、対象となるディレクトリ及びファイルを第２の記憶媒体にコピーするためのコンピュータプログラムであって、
コンピュータに実行されると、
各ディレクトリの階層関係を示す階層情報と、各ディレクトリ及び各ファイルの属性情報とを含む検索リストを生成し、
前記検索リストを参照して、前記第１の記憶媒体に記憶されているすべてのファイル及びすべてのディレクトリについて、各ディレクトリまたはファイルの属性情報に基づいて、それぞれのディレクトリまたはファイルがコピー対象か否かを判定し、
前記判定によりコピー対象のディレクトリと判定された場合は、当該ディレクトリの属性情報に基づいて、前記第２の記憶媒体にディレクトリを生成し、
前記判定によりコピー対象のファイルと判定された場合は、当該ファイルの属性情報に基づいて、前記第２の記憶媒体にファイル本体情報をコピーする、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶媒体に格納されているファイル及びディレクトリを選択的に他の記憶媒体にコピーする技術に関する。
【背景技術】
【０００２】
従来、ある記憶媒体に格納されているファイル及びディレクトリのすべてを他の記憶媒体にコピーするための技術が知られている。例えば特許文献１には、ハードディスク装置に記憶されているすべての情報が補助記憶装置にコピーされている。
【特許文献１】特開２００１−１４１９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ここで、特許文献１の技術では、ハードディスク装置にどのような情報が記憶されていようとも、すべての情報が補助記憶装置にコピーされている。つまり、ハードディスク装置に記憶されているファイルなどを選択的にコピーすることはできない。
【０００４】
また、ファイルなどを選択的にコピーする場合には、ＯＳなどが提供するＡＰＩを利用すれば便利である。しかし、その一方で、ＡＰＩを利用すればオーバーヘッドが大きくなり、処理に時間がかかってしまうという問題がある。
【０００５】
そこで、本発明の目的は、記憶媒体に格納されているファイル及びディレクトリを他の記憶媒体へ、選択的に高速でコピーする技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明の一実施態様に従うコピー装置は、階層的なディレクトリ構造で複数のファイルが記憶されている第１の記憶媒体から、対象となるディレクトリ及びファイルを第２の記憶媒体にコピーするものである。このコピー装置は、前記第１の記憶媒体に格納されているディレクトリ及びファイルのそれぞれについての階層情報及び属性情報を含む、各ディレクトリ及びファイル別の管理情報を含む検索リストのための検索リスト領域と、前記第１の記憶媒体から、前記各ディレクトリ及びファイル別の管理情報を読み出して、前記検索リスト領域に格納する検索リスト生成手段と、前記検索リストを参照し、前記第１の記憶媒体に記憶されているすべてのファイル及びすべてのディレクトリについて、各ディレクトリまたはファイルの属性情報に基づいて、それぞれのディレクトリまたはファイルがコピー対象か否かを判定する手段と、前記判定手段によりコピー対象のディレクトリと判定された場合は、当該ディレクトリの管理情報に基づいて、前記第２の記憶媒体にディレクトリを生成する手段と、前記判定手段によりコピー対象のファイルと判定された場合は、当該ファイルの管理情報に基づいて、前記第２の記憶媒体にファイル本体情報をコピーする手段と、を備える。
【０００７】
好適な実施形態では、前記検索リスト生成手段による検索リストの生成と並行して、前記判定手段が前記判定を行うようにしてもよい。
【０００８】
好適な実施形態では、前記検索リスト領域は、ルートディレクトリに生成されているサブディレクトリ及びファイルの管理情報を格納するためのルート領域と、いずれかのサブディレクトリに生成されているサブディレクトリ及びファイルの管理情報を格納するためのデータ領域とを有し、前記検索リスト生成手段は、前記いずれかのサブディレクトリに生成されているサブディレクトリ及びファイルの管理情報の容量が、前記データ領域の容量を超えるときは、前記データ領域をサイクリックに利用するようにしてもよい。
【０００９】
好適な実施形態では、前記判定手段は、前記ディレクトリまたはファイルの属性が、隠し属性及びシステム属性のいずれでもないときに、コピー対象であると判定するようにしてもよい。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の一実施形態に係る複合機について、図面を参照して説明する。
【００１１】
図１は、本実施形態に係る、プリンタ及びスキャナの両機能を備えた複合機の構成を示す図である。
【００１２】
すなわち、複合機１は、所定のプログラムを実行して、複合機１全体を制御するＣＰＵ１０１と、ＣＰＵ１０１で実行されるプログラムが記憶されているＲＯＭ１０２と、一時記憶領域として使用されるＲＡＭ１０３と、印刷を行う印刷機構１５０と、印刷機構１５０を制御して印刷を実行させる印刷制御部１０４と、画像を読み取るスキャン機構１６０と、スキャン機構１６０を制御して画像の読み取りを実行させる読み取り制御部１０５と、所定のメモリカード８が着脱されるメモリカードコネクタ１０７と、メモリカード８に対するリード・ライトを制御するメモリカード制御部１０６と、ユーザインタフェースのための液晶ディスプレイ（ＬＣＤ）１０９及び操作パネル１１０と、液晶ディスプレイ１０９を制御する表示制御部１０８と、他の装置とＵＳＢ（Universal Serial Bus）に従って通信を行うためＵＳＢインタフェースである、ＵＳＢホストコントローラ１１５及びＵＳＢコネクタ１１６とを備える。
【００１３】
そして、メモリカードコネクタ１０７には、所定のメモリカード８が着脱可能である。メモリカード８は、例えば、デジタルカメラに装着され、そのデジタルカメラで撮影した画像のデータが格納されているものであってもよい。
【００１４】
ＵＳＢコネクタ１１６には、所定のＵＳＢデバイス３が接続可能である。ＵＳＢデバイス３は、例えば、ＵＳＢデバイスコントローラが搭載された、所定の記憶媒体４のリーダ・ライタでよい。本実施形態では、所定の記憶媒体４は、例えば、ＭＯ（Magneto-Optic）、
Ｚｉｐ、フラッシュメモリなどでよい。
【００１５】
本実施形態に係る複合機１は、メモリカード８に記憶されている画像データをメモリカード制御部１０６が読み込み、印刷機構１５０を用いて印刷することができる。また、スキャン機構１６０が読み取った画像データも、印刷機構１５０で印刷することができる。
【００１６】
さらに、複合機１は、メモリカード８から読み取った画像データ及びスキャン機構１６０が読み取った画像データを、ＵＳＢインタフェース１１５，１１６及びＵＳＢデバイス３を介して、記憶媒体４に記憶させることができる。
【００１７】
特に、本実施形態では、メモリカード８に記憶されている全画像データを記憶媒体４に高速でバックアップを行う。その際、メモリカード８内に記憶されている全データを記憶媒体４にコピーするのではなく、ユーザに直接は関係のない、隠し属性ファイル及びシステム属性ファイルを除いてコピーする。
【００１８】
また、以下の説明では、メモリカード８及び記憶媒体４のファイルシステムは、いずれもＦＡＴ（File Allocation Tables）が採用されているものを対象として説明する。しかしながら、本発明は、ＦＡＴ以外のファイルシステムであっても適用可能である。例えば、記憶媒体４がＦＡＴ以外のファイルシステムを採用する場合、メモリカード８から読み出したデータを記憶媒体４に書き込む前に適当形式にフォーマット変換を施してやればよい。
【００１９】
以下、メモリカード８から記憶媒体４への高速バックアップのための処理について説明する。
【００２０】
まず、図２に、メモリカード８に記憶されている階層的なディレクトリ構造の一例を示す。
【００２１】
同図に示すように、メモリカード８には、ディレクトリが階層的に設けられているとともに、複数のファイルが格納されている。つまり、ルートディレクトリには、"ＤＣＩＭ"及び"ＭＩＳＣ"というサブディレクトリが設けられている。"ＤＣＩＭ"には、さらに"１００ＥＰ"というサブディレクトリが設けられていて、そこには３つのＪＰＥＧファイルが格納されている。また、"ＭＩＳＣ"には、一つのファイルが格納されている。
【００２２】
図３には、図２に示すディレクトリの階層構造が、メモリカード８上にＦＡＴに従って記憶されているときのデータ構造を示す。
【００２３】
ＦＡＴでは、まず、記憶領域がルートディレクトリ領域２１０とデータ領域２２０とに分けられている。
【００２４】
ルートディレクトリ領域２１０にはルートディレクトリ情報３１０が格納されている。ルートディレクトリ情報３１０は、ルートディレクトリに生成されているサブディレクトリの管理情報３１１及びルートディレクトリに格納されているファイルの管理情報３１１が格納されている。
【００２５】
ここで、管理情報３１１には、ファイルまたはサブディレクトリの名前、拡張子、属性、記録時刻、及びサブディレクトリまたはファイル本体のデータが記憶されている先頭クラスタ番号などが含まれる。
【００２６】
データ領域２２０には、各サブディレクトリのサブディレクトリ情報３２０及びファイル本体情報３３０が格納されている。サブディレクトリ情報３２０には、自ディレクトリ情報３２１、親ディレクトリ情報３２２及び自ディレクトリに生成されているサブディレクトリの管理情報３２３及び自ディレクトリに格納されているファイルの管理情報３２３が格納されている。なお、以下の説明において、サブディレクトリを単に「ディレクトリ」と呼ぶ場合がある。
【００２７】
次に、上述の複合機１が、メモリカード８から記憶媒体４へ所定のファイルをバックアップするときの処理手順について、図４〜図６を用いて説明する。本実施形態では、メモリカード８に格納されている全データを記憶媒体４へバックアップするよう、ユーザから指示を受けたときに、隠し属性及びシステム属性のディレクトリ及びファイルをバックアップ対象外とし、それ以外のディレクトリ及びファイルのバックアップを行う。
【００２８】
まず、図６に例示する検索リスト５００について説明する。
【００２９】
検索リスト５００は、以下に説明するバックアップ処理において、メモリカード８に格納されているルートディレクトリ情報３１０及びサブディレクトリ情報３２０を待避する領域であり、例えばＲＡＭ１０３上に実現されている。
【００３０】
検索リスト５００は、同図に示すように、ルートディレクトリ情報３１０を格納するルートディレクトリ領域５１０と、メモリカード８のデータ領域２２０に格納されているサブディレクトリ情報３２０を格納するデータ領域５２０とに分かれている。データ領域２２０に格納されているサブディレクトリ情報３２０の全容量がデータ領域５２０全体の容量を超えるときは、データ領域５２０はサイクリックに利用される。
【００３１】
ルートディレクトリ領域５１０及びデータ領域５２０は、いずれも、管理情報３１１、３２３を格納する領域５１２，５２２と、それぞれの管理情報３１１、３２３が格納されていたメモリカード８上のクラスタ番号を格納する領域５１１、５２１とを有する。
【００３２】
また、この検索リスト５００は、検索ポインタ６００によって、現在処理対象となっている領域５１２，５２２が指し示されている。つまり、検索ポインタ６００は、処理対象となっている領域５１２，５２２のクラスタ番号及びそのクラスタ内で何番目の領域かを保持している。
【００３３】
図４及び図５は、メモリカード８から記憶媒体４へ、所定のファイルをバックアップするときの処理手順を示すフローチャートである。以下、図６を参照しつつ、図４，５のフローチャートに従って説明する。
【００３４】
複合機１は、メモリカードコネクタ１０７に装着されているメモリカード８のルートディレクトリ情報３１０を読み出し、検索リスト５００のルートディレクトリ領域５１０へ保存する（Ｓ１０１）。
【００３５】
次に、検索ポインタ６００をルートディレクトリ領域５１０の先頭にセットする（Ｓ１０２）。つまり、このときの検索ポインタ６００は、クラスタ番号「００」＝ルートディレクトリ領域の１番目の領域を指している。
【００３６】
ここで、ＣＰＵ１０１は、検索ポインタ６００が指している領域を読み出して（Ｓ１０３）、ここにいずれかの管理情報が格納されているか否かを判定する（Ｓ１０４）。そして、読み出した領域に管理情報が格納されていたならば（Ｓ１０４：Ｙｅｓ）、その管理情報に基づいて、その管理情報に係るディレクトリまたはファイルが保存対象であるか否かを判定する（Ｓ２０１）。
【００３７】
本実施形態では、ディレクトリまたはファイルが保存対象であるか否かを、管理情報に含まれる属性情報に基づいて判断する。つまり、ディレクトリまたはファイルの属性が隠し属性またはシステム属性であるときは、そのディレクトリまたはファイルを保存対象外とし、それ以外の属性の場合に保存対象とする。
【００３８】
ここで判定の対象となっている管理情報に係るファイルまたはディレクトリが保存対象外であるときは（Ｓ２０１：Ｎｏ）、ステップＳ１０３へ戻る。
【００３９】
一方、上記管理情報に係るファイルまたはディレクトリが保存対象であるときは（Ｓ２０１：Ｙｅｓ）、その管理情報がディレクトリのものであるかファイルのものであるかを判定する（Ｓ２０２）。
【００４０】
対象となっている管理情報がディレクトリのものであれば、ＣＰＵ１０１はその管理情報に含まれている先頭セクタ番号を取得する。そして、そのセクタ番号の領域に格納されているサブディレクトリ情報３２０の管理情報３２３を検索リスト５００のデータ領域５２０へ追加登録する（Ｓ２１１）。
【００４１】
さらに、ＣＰＵ１０１は、対象となっているディレクトリの管理情報に基づいて、このサブディレクトリを記憶媒体４に生成する（Ｓ２１２）。これにより、バックアップ対象となるディレクトリが記憶媒体４に生成される。なお、このとき、ロングファイル名が待避されていれば、この待避されたロングファイル名もコピーする。
【００４２】
ここで、検索ポインタ６００の内容をスタックに待避して、ステップＳ２１１で検索リスト５００に追加した管理情報３２３の先頭へ検索ポインタ６００を移動させて、ステップＳ１０３へ戻る（Ｓ２１３）。
【００４３】
ステップＳ２０２で、対象となっている管理情報がファイルの管理情報であると判定された場合、その管理情報はロングファイル名を記憶したものであるか否かを判定する（Ｓ２０３）。
【００４４】
そして、その管理情報がロングファイル名を記憶したものであるときは（Ｓ２０３：Ｙｅｓ）、その管理情報をロングファイル名の待避領域に待避する（Ｓ２０６）。
【００４５】
一方、対象となっている管理情報がロングファイル名を記憶したものでないときは（Ｓ２０３：Ｎｏ）、そのファイルの管理情報に基づいて、メモリカード８上での階層関係を維持しつつ、記憶媒体４に当該ファイルがコピーされる（Ｓ２０４）。つまり、ＣＰＵ１０１は、管理情報に含まれている先頭クラスタ番号に基づいてメモリカード８上のファイル本体情報３３０の位置を特定し、記憶媒体４にコピーする。なお、このとき、ロングファイル名が待避されていれば、この待避されたロングファイル名もコピーする。
【００４６】
そして、ＣＰＵ１０１は、検索ポインタ６００を次の領域へ移動させて、ステップＳ１０３へ戻る（Ｓ２０５）。
【００４７】
ここで、図４へ戻り、ステップＳ１０３読み出された、現在の検索ポインタ６００が指す領域に管理情報がないときは（Ｓ１０４：Ｎｏ）、検索ポインタ６００がルートディレクトリ領域５１０内を指しているか否かを判定する（Ｓ１０５）。
【００４８】
ここで、ルートディレクトリ領域５１０以外を指しているときは（Ｓ１０４：Ｎｏ）、すなわち、この直前の処理では、データ領域５２０に格納されているサブディレクトリ情報３２０を検索しており、そのサブディレクトリに関する処理が終了したことになる。そこで、一段上位の階層のディレクトリへ戻って処理を継続するために、スタックに待避されている検索ポインタ６００の情報をポップして、ステップＳ１０３へ戻る（Ｓ１０６）。
【００４９】
一方、検索ポインタ６００がルートディレクトリ領域５１０内を指しているときは（Ｓ１０５Ｙｅｓ）、すべてのサブディレクトリの検索が終了し、且つ、ルートディレクトリの管理情報についてもすべて処理を終了したことになるので、処理を終了する。
【００５０】
以上説明した処理によれば、ディレクトリ及びファイル間の階層関係を示す情報及び属性情報などを含む管理情報を検索リストに取得し、この検索リストを用いて個々のディレクトリ及びファイルについて、順にバックアップ対象か否かの判断を行っている。この結果、すべてのディレクトリ及びファイルについて、重複及び漏れなくバックアップ対象か否かの判断を行うことができる。
【００５１】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【００５２】
例えば、上述した実施形態では、検索リストを生成しつつ、ディレクトリ及びファイルのコピーを行っていたが、メモリカードの全管理情報を検索リストに登録した後、ディレクトリ及びファイルのコピーを行うようにしてもよい。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施形態に係る複合機の構成を示す。
【図２】メモリカード８に記憶されている階層的なディレクトリ構造の一例を示す。
【図３】図２のディレクトリ構造がＦＡＴに従って記憶されているときのデータ構造を示す。
【図４】所定のファイルをバックアップするときの処理手順を示すフローチャートである。
【図５】所定のファイルをバックアップするときの処理手順を示すフローチャートである。
【図６】検索リストの一例を示す。
【符号の説明】
【００５４】
１…複合機、３…ＵＳＢデバイス、４…記憶媒体、８…メモリカード、１０１…ＣＰＵ、１０２…ＲＯＭ、１０３…ＲＡＭ、１５０…印刷機構、１６０…スキャン機構、５００…検索リスト、５１０…ルートディレクトリ領域、５２０…データ領域、６００…検索ポインタ。
【図１】
2007094792.tif 000003
【図２】
2007094792.tif 000004
【図３】
2007094792.tif 000005
【図４】
2007094792.tif 000006
【図５】
2007094792.tif 000007
【図６】
2007094792.tif 000008