(57)【要約】【課題】記憶メディア内の全ファイルを別のメディアにコピーするときに、より高速に記憶メディアの全ファイルを他の記憶メディアにコピーする方法を提供する。【解決手段】プログラムが制御手段を、メディア上の全ファイルをコピーする際、コピー元記憶メディアのコピー元アドレスを決定するコピー位置制御手段と、そのアドレスに対応するデータをコピーすべきか判定するコピー判定手段と、コピーされることが決定されたときにコピー元記憶メディア上からファイルデータを読み込むデータ読み込み手段と、コピー先記憶メディア上のコピー元アドレスと同一のアドレスをコピー先アドレスとしてファイルデータを書き込むデータ書き込み手段として機能させる構成とした。【選択図】図３
2006323462.tif 000002
【特許請求の範囲】
【請求項１】
ファイルコピーのためのプログラムを記憶するメモリと、
前記メモリから前記プログラムを読み出して実行することによりコピー元記憶メディアからコピー先記憶メディアへファイルをコピーする制御手段とを備え、
前記プログラムは前記制御手段を、
前記コピー元記憶メディアのコピー元アドレスを決定するコピー位置制御手段と、
前記コピー位置制御手段で決定した前記コピー元アドレスに対して前記コピー元記録メディアのファイルシステムのファイル管理情報を参照することにより、ファイルを構成するデータをコピーしファイルを構成しないデータをコピーしないという判定をするコピー判定手段と、
前記コピー判定手段によりコピーすることを決定した前記コピー元記憶メディア上の前記コピー元アドレスからファイルデータを読み込むデータ読み込み手段と、
コピー先記憶メディア上の前記コピー元アドレスと同一のアドレスをコピー先アドレスとして前記ファイルデータを書き込むデータ書き込み手段として機能させるファイルコピー装置。
【請求項２】
コピー元記憶メディアのコピー元アドレスを決定するコピー位置制御ステップと、
前記コピー元記録メディアのファイルシステムのファイル管理情報を参照することにより前記コピー位置制御ステップで決定した前記コピー元アドレスに対応するデータをコピーすべきか判定するコピー判定ステップと、
前記コピー判定手段によりコピーすることを決定した前記コピー元記憶メディア上の前記コピー元アドレスからファイルデータを読み込むデータ読み込みステップと、
コピー先記憶メディア上の前記コピー元アドレスと同一のアドレスをコピー先アドレスとして前記ファイルデータを書き込むデータ書き込みステップとを含むファイルコピー方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶メディア上に記憶されているファイルをコピーする際に、データの転送量を減らして、高速にコピーを行う方法に関する。
【背景技術】
【０００２】
ビデオカメラやデジタルスチルカメラといった撮影装置やディスクレコーダのような記録装置において、メモリカードやハードディスク、光ディスク等のランダムアクセス可能な記録媒体にデータを記録するには、利用性等の観点からデータをファイルとして記録するのが一般的である。
【０００３】
記憶メディア（記録媒体）にファイルを記録するためには、記憶メディア上のファイルを管理するためのファイルシステムと呼ばれる方式が用いられる。ファイルシステムの代表的なものには、ＦＡＴ（非特許文献１参照）がある。ファイルシステムの動作は複雑であるため、撮影装置や記録装置内のマイコン（コンピュータ）にオペレーティングシステム（ＯＳ）を搭載して、ＯＳ上で動作するソフトウェアとしてファイルシステムを実装するのが一般的である。なお、以下ではファイルシステムを実現するためのソフトウェアについても、ファイルシステムと呼称することとする。
【０００４】
記憶メディア上のデータを別の記憶メディアにコピーあるいは移動する処理は日常的に行われている処理である。この処理は図１に示すフローで行われている。コピーソフトウェア１０４は記憶メディア１０１上のファイルを記憶メディア１０７へコピーするソフトウェアである。コピーするファイルが指定されると、コピーソフトウェア１０４は記憶メディア１０１に記録されているファイルのオープンおよびリードを行う。このオープン、リードの処理において、ファイルシステム１０３はファイルを構成するデータが記録されているブロックのアドレスを求め、デバイスドライバ１０２は、記憶メディア１０１からそのアドレスのデータを取得する。記憶メディアにおける最小の記録単位をセクタと言い、通常、ファイルシステムは複数のセクタをまとめた「クラスタ」単位でデータの管理を行う。先述のブロックとはこのクラスタを指す。次に、コピーソフトウェア１０４は新規ファイルを作成し、記憶メディア１０１からブロック単位で読み込んだデータを書き込む処理を行う。この時、ファイルシステム１０５は、ＦＡＴやルートディレクトリエントリなどのファイルの管理情報を更新するとともに書き込むデータをデバイスドライバ１０６に送り、記憶メディア１０７へ書き込む。つまり、記憶メディア１０１、デバイスドライバ１０２、ファイルシステム１０３、コピーソフトウェア１０４と受け渡されたデータは、ファイルシステム１０５、デバイスドライバ１０６を経て記憶メディア１０７へ記録される。
【０００５】
記憶メディア間でファイルをコピーする別の方法として、ディスクイメージをコピーする方法がある。ディスクイメージとは、記憶メディアに書かれるデータ列そのもののことである。ディスクイメージのコピーでは、ファイルの管理情報も含め、ボリューム全体を正確かつ完全に複製することができる。図２にその実現方法を示す。ファイルコピーとの違いは、コピー処理にファイルシステムが介在しないことである。ディスクイメージコピーソフトウェア２１０はファイルという概念を持っていない。ディスクイメージコピーソフトウェア１１０は、記憶メディア１０１の論理ドライブの先頭からデバイスドライバ１０２を経由して順次データを読みこむ。それと同時に、記憶メディア１０７の論理ドライブの先頭からデバイスドライバ１０６を経由してデータを書き込む。これにより、記憶メディア１０７上には記憶メディア１０６と同じデータが書き込まれ、記憶メディア１０７のデータをファイルシステムでマウントすると、記憶メディア１０１とまったく同一のファイルが見えることになる。
【非特許文献１】Ｓｔａｎｄａｒｄ  ＥＣＭＡ−１０７：  Ｖｏｌｕｍｅ  ａｎｄ  Ｆｉｌｅ  Ｓｔｒｕｃｔｕｒｅ  ｏｆ  Ｄｉｓｋ  Ｃａｒｔｒｉｄｇｅｓ  ｆｏｒ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｉｎｔｅｒｃｈａｎｇｅ（ＥＣＭＡ，Ｊｕｎｅ  １９９５）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ディスクイメージをコピーする方法では、１つのパーティション中のすべてのファイルを一度にコピーすることが可能である。ディスクイメージのコピーはファイルシステムを解釈する必要がないので、図２に示すようにファイルコピーよりも構成が容易にできる。また、記憶メディアの記録容量のほとんどを使用している場合や、ファイルの数が多いような場合は、ファイルシステムでの処理時間が顕在化するため、ファイルコピーよりもディスクイメージコピーのほうがより高速に処理できる。
【０００７】
しかしながら、ディスクイメージコピーでは、空き領域も含めて記憶メディアの全領域をコピーするため、記憶メディアの残容量が大量にあったり、ファイルの数がそれほど多くなかったりする場合は、ディスクイメージコピーは全ファイルをファイルコピーするのに比べより時間がかかる可能性があるという問題点があった。
【０００８】
本発明はこのような問題点に鑑み、記憶メディア内の全ファイルを別のメディアにコピーするときに、従来のファイルシステム経由のコピーやディスクイメージコピーより高速に記憶メディアの全ファイルを他の記憶メディアにコピーする処理を完了する仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記問題点を解決するために本発明のファイルコピー装置は、ファイルコピーのためのプログラムを記憶するメモリと、メモリからプログラムを読み出して実行することによりコピー元記憶メディアからコピー先記憶メディアへファイルをコピーする制御手段とを備え、プログラムは制御手段を、メディア上の全ファイルをコピーする際、コピー元記憶メディアのコピー元アドレスを決定するコピー位置制御手段と、そのアドレスに対応するデータをコピーすべきか判定するコピー判定手段と、コピーされることが決定されたときにコピー元記憶メディア上からファイルデータを読み込むデータ読み込み手段と、コピー先記憶メディア上のコピー元アドレスと同一のアドレスをコピー先アドレスとしてファイルデータを書き込むデータ書き込み手段として機能させる構成とした。
【発明の効果】
【００１０】
本発明は、データのコピー回数を削減することにより、記憶メディア内の全ファイルを別のメディアにコピーする際、従来に比べ高速に処理を完了することができる。
【発明を実施するための最良の形態】
【００１１】
本実施の形態のファイルコピー装置のハードウェア構成を図３に示す。ハードウェアは制御手段（ＣＰＵ）２０１、メモリ２０２、記憶メディア１０１、１０７から構成される。記憶メディア１０１、１０７は取り外し可能なタイプでもよく、たとえば、記憶メディア１０１がメモリカード、記憶メディア１０７がＨＤＤなどである。
【００１２】
本発明のファイルコピー装置上で動作する、全ファイルコピーを行うコピーソフトウェアは、撮影装置や記録装置等に搭載されている制御手段２０１上で動作するソフトウェアである。本発明のコピーソフトウェアの構成を図４に示す。ファイルシステムを経由せずにコピーを行う点は図２の従来のディスクイメージコピーと同じである。すなわち、全ファイルコピーソフトウェア１２０は記憶メディア１０１からデバイスドライバ１０２経由でデータを読み込み、デバイスドライバ１０６経由で記憶メディア１０７にデータをコピーする。全ファイルコピーソフトウェア１２０は、コピー位置制御手段３０１、コピー判定手段３０２、データ読み込み手段３０３、データ書き込み手段３０４を有している。コピー位置制御手段３０１は、コピー元の記憶メディア１０１においてコピー元のクラスタを決定すると共に、コピー先の記憶メディア１０７において、コピー先のクラスタを決定するもので、たとえば、各々の記憶メディアにおいて順次クラスタの位置をインクリメントするような処理を行う。コピー判定手段３０２は、コピー位置制御手段３０１で決定したクラスタの位置をコピーすべきかどうかを判定する。コピー判定手段３０２でコピーすることが決定されたクラスタについては、データ読み込み手段３０３が記憶メディア１０１からデータを読み出し、データ書き込み手段３０４が記憶メディア１０７にこのデータを書き出す。
【００１３】
本発明のコピー処理を、ＦＡＴファイルシステムによってフォーマット（以下、ＦＡＴフォーマットとする）された記憶メディアに対して行う場合を例に取って説明する。ファイルシステムフォーマットの一例として、ＦＡＴフォーマットについて図５を用いて説明する。図５のように、メモリカードやハードディスク等の物理ドライブ４００は、通常、領域の先頭に置かれるマスターブートレコード４０２と１個以上の論理ドライブ４０１から構成される。１個の論理ドライブ４０１は、１種類のファイルシステムでフォーマットされる。ＦＡＴフォーマットの場合、論理ドライブ４０１の先頭からパーティションブートセクタ４０３、ファイルアロケーションテーブル（ＦＡＴ）４０４、ＦＡＴのバックアップ４０４ｂ、ルートディレクトリエントリ４０５というシステム領域が配置され、システム領域の後ろにユーザデータ領域４０６が配置される。パーティションブートセクタ４０３には、パーティションのセクタ数といったパーティションを起動するのに必要な情報が記録される。ＦＡＴ４０４には、ファイルの記録情報が配置される。ユーザデータ領域４０６には、ファイルのデータ自体が置かれる。ファイルはクラスタを単位（通常４ＫＢ〜３２ＫＢ）として記録される。
【００１４】
ルートディレクトリエントリ４０５には、ルートディレクトリに置かれているファイル又はディレクトリの情報がエントリとして記録される。階層構造のディレクトリにおいて、全てのファイル及びディレクトリは、図６のような３２バイトからなるディレクトリエントリ４０７として記録される。図６は、ファイル名が８文字、拡張子が３文字の８．３形式で記録されているファイルのディレクトリエントリを示している。図６中の０〜Ｆおよび０ｘ００、０ｘ１０はデータが書かれているアドレスを表している。たとえば、横０ｘ１０、縦６は０ｘ１６のアドレスに相当する。ディレクトリエントリ４０７には、ファイルのデータが置かれる先頭のクラスタ番号４０８が含まれる。この先頭のクラスタ番号４０８によりファイルのデータにアクセスできる。予約領域４１０は拡張のために予約されている領域であり、記録日時４０９はファイルを記録した日時、ファイル長４１１はファイルの長さを表す。
【００１５】
ＦＡＴ４０４に配置されるファイルの記録情報について、図７を用いて説明する。ＦＡＴ４０４は、ユーザデータ領域４０６上のクラスタを管理するためのテーブルである。ＦＡＴ４０４には１２ビットや１６ビットといった単位でファイルの次のデータの存在するクラスタ番号を記録する。図７のように、ユーザデータ領域４０６に記録するファイル４３０を部分データ４３１に分けてクラスタ番号３、４、７のクラスタに記録する場合、ＦＡＴ４０４にはクラスタを連結するための情報として、クラスタ番号３の位置に４を記録し、クラスタ番号４の位置に７を記録する。最後にクラスタ番号７の位置に終了マークを記録する。ファイル４３０における先頭のクラスタ番号３は、前述のようにファイル４３０のディレクトリエントリ４０７に記録される。
【００１６】
図８、図９は本発明でのコピー方法のフローチャートである。コピー先の記憶メディア１０７には本発明の処理に先立ってパーティションが確保されていることを前提とする。マスターブートレコード４０２は、記憶メディア上にパーティションを確保する時点でパーティション固有の情報が記録されており、これをコピーするとコピー先の記憶メディア１０７のパーティションの情報が壊れてしまう。したがってマスターブートレコード４０２については、コピーをしない。つまり、全ファイルコピーソフトウェア１２０は、パーティションブートセクタ４０３から始まる論理ドライブ４０１をコピーする。論理ドライブ４０１をコピーするため、まずコピー位置制御手段３０１は論理ドライブ先頭の位置検索処理５０１において記憶メディア１０１、１０７のパーティションブートセクタ４０３の先頭アドレスを求める。
【００１７】
データ読み込み手段３０３とデータ書き込み手段３０４はパーティションブートセクタ１０３をコピーする処理５０２を行う。記憶メディアにおける最小の記録単位をセクタと言い、通常、ファイルシステムは複数のセクタをまとめた「クラスタ」単位でデータの管理を行う。データ読み込み手段３０３とデータ書き込み手段３０４はクラスタを１ブロックとしてデータの読み込みおよび書き込みを行う。処理５０２では、データ読み込み手段３０３がデバイスドライバ１０２を通して記憶メディア１０１からパーティションブートセクタ１０３が格納されているクラスタを取得し、データ書き込み手段３０４がデバイスドライバ１０６を通して記憶メディア１０７にパーティションブートセクタ１０３が格納される領域にデータ読み込み手段３０３で読み込んだデータを書き込む。
【００１８】
その後、コピー位置制御手段３０１はコピー位置（読み込み位置および書き込み位置）をパーティションブートセクタ１０３の直後のＦＡＴ４０４の先頭クラスタに移動する。次にコピー判定手段３０２でＦＡＴ４０４のデータをメモリ２０２上に記録する処理５０３を行い、処理５０６で使用するＦＡＴを保持しておく。そして、データ読み込み手段３０３とデータ書き込み手段３０４はＦＡＴ４０４、４０４ｂをコピーする処理５０４と、ルートディレクトリエントリ４０５をコピーする処理５０５を行う。その際、コピー位置制御手段３０１は各コピー処理の後に次のクラスタにコピー位置を移動する処理を行う。なお、ここまでの処理により、記憶メディア１０７はＦＡＴフォーマットのドライブとしてマウントできるようになる。
【００１９】
次にファイルの内容をコピーするために、ユーザデータ１０６をコピーする処理５０６を図９、図１０を用いて説明する。
【００２０】
ＦＡＴ４０４ではユーザデータ領域４０６の各クラスタに対応して領域が割り当てられている。ファイルは一つまたは複数のクラスタにまたがって記録されている。ＦＡＴ４０４では、そのファイルがどのクラスタにどういった順番で記録されているかが記録されている。すなわち、ファイルはクラスタ単位でブロックに分割されて、各々のブロックがいずれかのクラスタに記録されている。そしてＦＡＴ４０４においては、その先頭ブロックが記録されているクラスタに対応する領域には、そのファイルの２番目のブロックが記録されているクラスタの番号が書かれている。同様に、２番目のブロックが記録されているクラスタに対応する領域には、そのファイルの３番目のブロックが記録されているクラスタの番号が書かれているといった具合である。具体的には、図１０のように３−４−７のクラスタを使用するファイル（ファイルＡとする）の場合、ＦＡＴ４０４の対応する領域には、それぞれ４、７、Ｅｎｄというデータが書かれている。０ｘ００のクラスタは空き領域（図１０上の×印）であり、ファイルとしては参照されていないので、記憶メディア１０１と記憶メディア１０７に書かれているデータは異なっていてもファイルシステムを通して見ると差異は現れない。しかし、０ｘ０３のデータはファイルＡの一部を構成しているので、同じデータが書かれていないとファイルシステムがファイルを構成した場合、ファイルＡが同じ内容にならない。よって、コピー判定手段３０２では、例えば０ｘ００のアドレスはコピーせず、０ｘ０３のアドレスはコピーするというアルゴリズムを採用する。以下、このアルゴリズムについて説明する。
【００２１】
図９は、ユーザデータのコピー処理のフローチャートである。処理５０５終了時点で、コピー位置はユーザデータの先頭にあるので、まず、コピー位置制御手段３０１はユーザデータの読み込みが最終端に達していないか確認する条件判定５１０を行う。最終端に達していた場合は、コピー処理を終了し、最終端に来ていないときは、コピー処理を続行する。
【００２２】
コピー判定手段３０２は、メモリに格納されているＦＡＴ４０４のデータを参照して、対象のクラスタがファイルを構成する有効なクラスタであるかを判定する条件判定５１１を行う。有効なクラスタとは、空き領域でないクラスタであり、ここではＦＡＴ４０４に０ｘ００以外の値が格納されているクラスタとなる。有効でないときはこのクラスタについてはコピーを行わずに次のアドレスの処理へと移動し、有効であるときは処理５１２でそれに対応するクラスタをコピーする。
【００２３】
このように、３、４、７のクラスタをコピーし、０、１などファイルを構成していないクラスタをコピーしないことにより、データの読み込みと書き込みの回数を減らすことができるため、コピー処理が高速になる。
【００２４】
なお、本実施例ではＦＡＴを用いて説明したが、ＦＡＴ３２やＮＴＦＳでも同様に行うことができる。ＮＴＦＳの場合はコピー判定手段３０２の判定基準にＦＡＴではなく、ＭＦＴ（Ｍａｓｔｅｒ  Ｆｉｌｅ  Ｔａｂｌｅ）を利用するとともに、ＦＡＴ４０４、ディレクトリエントリ４０５のコピーの代わりにＭＦＴレコードのコピーを行う。
【産業上の利用可能性】
【００２５】
本発明のファイルコピー装置および方法によれば、記憶メディア内の全ファイルを別のメディアにコピーする際、従来に比べ高速に処理を完了することができるため、記憶メディア間でデータのコピーを行うプログラムおよびそのプログラムを搭載した機器等にも適用可能である。
【図面の簡単な説明】
【００２６】
【図１】従来のコピーソフトウェアで使用するソフトウェア階層を示した図
【図２】従来のディスクイメージコピーソフトウェアで使用するソフトウェア階層を示した図
【図３】本発明のハードウェア構成図
【図４】本発明のコピーソフトウェアの構成図
【図５】ＦＡＴフォーマット解説図
【図６】ディレクトリエントリ解説図
【図７】ＦＡＴに配置されるファイルの記録情報の具体例を示した図
【図８】論理ドライブをコピーするためのフローチャート
【図９】ユーザデータをコピーするためのフローチャート
【図１０】ＦＡＴの具体例を示した図
【符号の説明】
【００２７】
１０１  記憶メディア
１０２  デバイスドライバ
１０３  ファイルシステム
１０４  コピーソフトウェア
１０５  ファイルシステム
１０６  デバイスドライバ
１０７  記憶メディア
１１０  ディスクイメージコピーソフトウェア
１２０  全ファイルコピーソフトウェア
２０１  制御手段（ＣＰＵ）
２０２  メモリ
３０１  コピー位置制御手段
３０２  コピー判定手段
３０３  データ読み込み手段
３０４  データ書き込み手段
４００  物理ドライブ
４０１  論理ドライブ
４０２  マスターブートレコード
４０３  パーティションブートセクタ
４０４  ファイルアロケーションテーブル＃１
４０４ｂ  ファイルアロケーションテーブル＃２
４０５  ルートディレクトリエントリ
４０６  ユーザデータ領域
４０７  ディレクトリエントリ
４０８  先頭のクラスタ番号
４０９  記録日時
４１０  予約領域
４１１  ファイル長
４２０  クラスタ
４２１  クラスタ番号
４３０  ファイル
４３１  部分データ
５０１  論理ドライブ先頭位置の検索
５０２  ＰＢＳのコピー
５０３  ＦＡＴ＃１をメモリに格納
５０４  ＦＡＴ＃１，＃２のコピー
５０５  ルートディレクトリエントリのコピー
５０６  ユーザデータの選択的コピー
５１０  最終クラスタの判定
５１１  有効クラスタの判定
５１２  ユーザデータのコピー
【図１】
2006323462.tif 000003
【図２】
2006323462.tif 000004
【図３】
2006323462.tif 000005
【図４】
2006323462.tif 000006
【図５】
2006323462.tif 000007
【図６】
2006323462.tif 000008
【図７】
2006323462.tif 000009
【図８】
2006323462.tif 000010
【図９】
2006323462.tif 000011
【図１０】
2006323462.tif 000012