(57)【特許請求の範囲】
【請求項１】
外部記憶装置に格納されているファイルに対する処理を実行するファイル管理装置であって、
前記外部記憶装置に格納されている複数のファイルの中から一または複数のファイルを選択するために用いられる入力部と、
前記入力部によって選択された一または複数のファイルを処理対象となる対象ファイルとして特定する対象ファイル特定部と、
前記外部記憶装置に対するファイルの読み書きに要する時間よりも短い時間でファイルの読み書きが可能な一時記憶部と、
前記対象ファイルに対する処理内容が確定される前に、前記対象ファイルを前記外部記憶装置から読み出し、前記一時記憶部に格納する対象ファイル取得部と、
前記一時記憶部に格納されている前記対象ファイルを用いて、前記対象ファイルに対する確定された処理内容を実行する処理実行部であって、前記確定された処理内容が前記対象ファイルのコピー処理である際に、前記一時記憶部に格納されている前記対象ファイルを、前記外部記憶装置におけるコピー先格納位置に書き込む処理実行部と、を備えるファイル管理装置。
【請求項２】
外部記憶装置に格納されているファイルに対する処理を実行するファイル管理装置であって、
前記外部記憶装置に格納されている複数のファイルの中から一または複数のファイルを選択するために用いられる入力部と、
前記入力部によって選択された一または複数のファイルを処理対象となる対象ファイルとして特定する対象ファイル特定部と、
前記外部記憶装置に対するファイルの読み書きに要する時間よりも短い時間でファイルの読み書きが可能な一時記憶部と、
前記対象ファイルに対する処理内容が確定される前に、前記対象ファイルを前記外部記憶装置から読み出し、前記一時記憶部に格納する対象ファイル取得部と、
前記一時記憶部に格納されている前記対象ファイルを用いて、前記対象ファイルに対する確定された処理内容を実行する処理実行部であって、前記確定された処理内容が前記対象ファイルの移動処理である際に、前記一時記憶部に格納されている前記対象ファイルを、前記外部記憶装置における移動先格納位置に書き込むと共に、前記外部記憶装置における前記対象ファイルが格納されていた移動元格納位置から前記対象ファイルを削除する処理実行部と、を備えるファイル管理装置。
【請求項３】
請求項１または２に記載のファイル管理装置において、
前記入力部はポインティングデバイスであり、
前記対象ファイル特定部は、前記ポインティングデバイスによって選択された一または複数のファイルを対象ファイルとして特定する、ファイル管理装置。
【請求項４】
請求項１または２に記載のファイル管理装置において、
前記入力部はポインティングデバイスであり、
前記対象ファイル特定部は、前記ポインティングデバイスによって指し示された一のファイルを対象ファイルとして特定する、ファイル管理装置。
【請求項５】
請求項１から４のいずれかに記載のファイル管理装置はさらに、
前記対象ファイルに対する処理内容の要求を確定する処理内容確定部を備え、
前記処理実行部は、前記一時記憶部に格納されている前記対象ファイルを用いて、前記処理内容確定部によって確定された前記対象ファイルに対する処理内容を実行する、ファイル管理装置。
【請求項６】
請求項１から５のいずれかに記載のファイル管理装置において、
前記対象ファイル取得部は、前記外部記憶装置から前記対象ファイルを読み出す度に、前記一時記憶部をクリアし、読み出した前記対象ファイルを前記一時記憶部に格納する、ファイル管理装置。
【請求項７】
請求項１から５のいずれかに記載のファイル管理装置において、
前記対象ファイル取得部は、前記確定された処理を前記対象ファイルに対して実行した後、前記一時記憶部をクリアする、ファイル管理装置。
【請求項８】
外部記憶装置に格納されているファイルに対する処理を実行するファイル管理方法であって、
前記外部記憶装置に格納されている複数のファイルの中から一または複数のファイルの選択を入力部を介して受け付け、
前記入力部を介して選択されたファイルを処理対象となる対象ファイルとして特定し、
前記対象ファイルに対する処理内容が確定される前に、前記対象ファイルを前記外部記憶装置から読み出し、前記外部記憶装置に対するファイルの読み書きに要する時間よりも短い時間でファイルの読み書きが可能な一時記憶部に格納し、
前記対象ファイルに対する確定された処理内容が前記対象ファイルのコピー処理である際に、前記一時記憶部に格納されている前記対象ファイルを、前記外部記憶装置におけるコピー先格納位置に書き込む、ファイル管理方法。
【請求項９】
外部記憶装置に格納されているファイルに対する処理を実行するファイル管理方法であって、
前記外部記憶装置に格納されている複数のファイルの中から一または複数のファイルの選択を入力部を介して受け付け、
前記入力部を介して選択されたファイルを処理対象となる対象ファイルとして特定し、
前記対象ファイルに対する処理内容が確定される前に、前記対象ファイルを前記外部記憶装置から読み出し、前記外部記憶装置に対するファイルの読み書きに要する時間よりも短い時間でファイルの読み書きが可能な一時記憶部に格納し、
前記対象ファイルに対する確定された処理内容が前記対象ファイルの移動処理である際に、前記一時記憶部に格納されている前記対象ファイルを、前記外部記憶装置における移動先格納位置に書き込むと共に、前記外部記憶装置における前記対象ファイルが格納されていた移動元格納位置から前記対象ファイルを削除する、ファイル管理方法。
【請求項１０】
外部記憶装置に格納されているファイルに対する処理をコンピュータに実行させるためのファイル管理プログラムであって、
前記外部記憶装置に格納されている複数のファイルの中から一または複数のファイルの選択を入力部を介して受け付ける機能と、
前記入力部を介して選択されたファイルを処理対象となる対象ファイルとして特定する機能と、
前記対象ファイルに対する処理内容が確定される前に、前記対象ファイルを前記外部記憶装置から読み出し、前記外部記憶装置に対するファイルの読み書きに要する時間よりも短い時間でファイルの読み書きが可能な一時記憶部に格納する機能と、
前記対象ファイルに対する確定された処理内容が前記対象ファイルのコピー処理である際に、前記一時記憶部に格納されている前記対象ファイルを、前記外部記憶装置におけるコピー先格納位置に書き込む機能とをコンピュータによって実現させる、ファイル管理プログラム。
【請求項１１】
外部記憶装置に格納されているファイルに対する処理をコンピュータに実行させるためのファイル管理プログラムであって、
前記外部記憶装置に格納されている複数のファイルの中から一または複数のファイルの選択を入力部を介して受け付ける機能と、
前記入力部を介して選択されたファイルを処理対象となる対象ファイルとして特定する機能と、
前記対象ファイルに対する処理内容が確定される前に、前記対象ファイルを前記外部記憶装置から読み出し、前記外部記憶装置に対するファイルの読み書きに要する時間よりも短い時間でファイルの読み書きが可能な一時記憶部に格納する機能と、
前記対象ファイルに対する確定された処理内容が前記対象ファイルの移動処理である際に、前記一時記憶部に格納されている前記対象ファイルを、前記外部記憶装置における移動先格納位置に書き込むと共に、前記外部記憶装置における前記対象ファイルが格納されていた移動元格納位置から前記対象ファイルを削除する機能とをコンピュータによって実現させる、ファイル管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部記憶装置に格納されているファイルに対する処理を実行するファイル管理装置およびファイル管理方法に関する。
【背景技術】
【０００２】
一般的なオペレーティングシステムによって提供されるユーザインターフェースでは、プログラムやファイルを示すアイコンが用いられており、マウス等のポインティングデバイスによってアイコンをクリック、ドラッグアンドドロップすることによって、ユーザが所望する機能が提供される。
【０００３】
例えば、ファイルを示すアイコンを元のフォルダから移動先となるフォルダにドラッグアンドドロップすることによって、大容量記憶装置内または大容量記憶装置間における対象ファイルのコピーまたは移動を実現することができる。また、アイコンを用いた拡張的なユーザインターフェースとして、例えば、マウスを介してアイコンに対して予め定められた所定の操作を実行することによって、実現される処理内容を変更可能とする技術が知られている(例えば、特許文献１)。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２２７８２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、一般的に、ハードディスクドライブといった外部記憶装置（補助記憶装置）に対するファイル（データ）の読み出し、書き込みは、内部記憶装置（主記憶装置）に対するファイルの読み出し、書き込みと比較して時間を要する。したがって、ファイルに対する処理要求、例えば、ファイルのコピーまたは移動、に対するレスポンスが良くないという問題があった。
【０００６】
本発明は上記課題の少なくとも一部を解決するためになされた発明であり、外部記憶装置に格納されているファイルに対する処理要求の実行に要する時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題の少なくとも一部を解決するために、本発明は以下の種々の態様を採る。
【０００８】
第１の態様は、外部記憶装置に格納されているファイルに対する処理を実行するファイル管理装置を提供する。第１の態様に係るファイル管理装置は、前記外部記憶装置に格納されている複数のファイルの中から処理対象となるファイルを対象ファイルとして特定する対象ファイル特定部と、前記外部記憶装置に対するファイルの読み書きに要する時間よりも短い時間でファイルの読み書きが可能な一時記憶部と、前記対象ファイルを前記外部記憶装置から読み出し、前記一時記憶部に格納する対象ファイル取得部と、前記一時記憶部に格納されている前記対象ファイルを用いて、前記対象ファイルに対する確定された処理内容を実行する処理実行部とを備える。
【０００９】
第１の態様に係るファイル管理装置は、外部記憶装置に格納されている複数のファイルの中から特定された処理対象となる対象ファイルを取得して、外部記憶装置に対するファイルの読み書きに要する時間よりも短い時間でファイルの読み書きが可能な一時記憶部に格納し、一時記憶部に格納されている対象ファイルを用いて対象ファイルに対する確定された処理内容を実行するので、外部記憶装置に格納されているファイルに対する処理要求の実行に要する時間を短縮することができる。
【００１０】
第１の態様に係るファイル管理装置において、前記処理実行部は、前記確定された処理内容が前記対象ファイルのコピー処理である際に、前記一時記憶部に格納されている前記対象ファイルを、前記外部記憶装置におけるコピー先格納位置に書き込んでも良い。この場合には、対象ファイルに対する処理内容であるコピー処理が確定される前に、一時記憶部に対象ファイルが格納されているので、対象ファイルに対するコピー処理が確定した後に外部記憶装置から対象ファイルを読み出す場合よりも、短い時間で対象ファイルのコピー処理を完了することができる。
【００１１】
第１の態様に係るファイル管理装置において、前記処理実行部は、前記確定された処理内容が前記対象ファイルの移動処理である際に、前記一時記憶部に格納されている前記対象ファイルを、前記外部記憶装置における移動先格納位置に書き込むと共に、前記外部記憶装置における前記対象ファイルが格納されていた移動元格納位置から前記対象ファイルを削除しても良い。この場合には、対象ファイルに対する処理内容である移動処理が確定される前に、一時記憶部に対象ファイルが格納されているので、対象ファイルに対する移動処理が確定した後に外部記憶装置から対象ファイルを読み出す場合よりも、短い時間で対象ファイルの移動処理を完了することができる。
【００１２】
第１の態様に係るファイル管理装置はさらに、前記複数のファイルの中から一または複数のファイルを選択するために用いられる入力部を備え、前記対象ファイル特定部は、前記入力部によって選択された一または複数のファイルを対象ファイルとして特定しても良い。この場合には、複数のファイルに対する処理要求の実行に要する時間を短縮することができる。
【００１３】
第１の態様に係るファイル管理装置において、前記入力部はポインティングデバイスであり、前記対象ファイル特定部は、前記ポインティングデバイスによって選択された一または複数のファイルを対象ファイルとして特定しても良い。この場合には、複数のファイルに対する処理要求の実行に要する時間を短縮することができる。
【００１４】
第１の態様に係るファイル管理装置において、前記入力部はポインティングデバイスであり、前記対象ファイル特定部は、前記ポインティングデバイスによって指し示された一のファイルを対象ファイルとして特定しても良い。この場合には、ファイルに選択処理を待たずして、対象ファイルを特定することが可能となり、さらに対象ファイルに対する処理要求の実行に要する時間を短縮することができる。
【００１５】
第１の態様に係るファイル管理装置はさらに、前記対象ファイルに対する処理内容の要求を確定する処理内容確定部を備え、前記処理実行部は、前記一時記憶部に格納されている前記対象ファイルを用いて、前記処理内容確定部によって確定された前記対象ファイルに対する処理内容を実行しても良い。この場合には、処理内容確定部によって処理内容が確定されると、確定された処理内容に基づいて、一時記憶部に格納されている対象ファイルに対する処理が実行されるので、対象ファイルに対する処理要求の実行に要する時間を短縮することができる。
【００１６】
第１の態様に係るファイル管理装置において、前記対象ファイル取得部は、前記外部記憶装置から前記対象ファイルを読み出す度に、前記一時記憶部をクリアし、読み出した前記対象ファイルを前記一時記憶部に格納しても良い。この場合には、一時記憶部における記憶容量不足および対象ファイルの書き込み誤りを低減または防止することができる。
【００１７】
第１の態様に係るファイル管理装置において、前記対象ファイル取得部は、前記確定された処理を前記対象ファイルに対して実行した後、前記一時記憶部をクリアしても良い。この場合には、一時記憶部における記憶容量不足を低減または防止することができる。
【００１８】
第２の態様は、外部記憶装置に格納されているファイルに対する処理を実行するファイル管理方法を提供する。第２の態様に係るファイル管理方法は、前記外部記憶装置に格納されている複数のファイルの中から処理対象となるファイルを対象ファイルとして特定し、前記対象ファイルを前記外部記憶装置から読み出し、前記外部記憶装置に対するファイルの読み書きに要する時間よりも短い時間でファイルの読み書きが可能な一時記憶部に格納し、前記一時記憶部に格納されている前記対象ファイルを用いて、前記対象ファイルに対する確定された処理内容を実行することを備える。
【００１９】
第３の態様は、外部記憶装置に格納されているファイルに対する処理をコンピュータに実行させるためのファイル管理プログラムを提供する。第３の態様に係るファイル管理プログラムは、前記外部記憶装置に格納されている複数のファイルの中から処理対象となるファイルを対象ファイルとして特定する機能と、前記対象ファイルを前記外部記憶装置から読み出し、前記外部記憶装置に対するファイルの読み書きに要する時間よりも短い時間でファイルの読み書きが可能な一時記憶部に格納する機能と、前記一時記憶部に格納されている前記対象ファイルを用いて、前記対象ファイルに対する確定された処理内容を実行する機能とをコンピュータによって実現させることを備える。
【００２０】
第２の態様に係るファイル管理方法および第３の態様に係るファイル管理プログラムは、第１の態様に係るファイル管理装置と同様の利点を得ることができる。第２の態様に係るファイル管理方法および第３の態様に係るファイル管理プログラムは、第１の態様に係るファイル管理装置と同様にして種々の態様にて実現され得る。さらに、本発明の第３の態様に係るファイル管理プログラムは、ＣＤ、ＤＶＤ、ＨＤＤといったコンピュータ読み取り可能媒体に記録されたコンピュータプログラムとしても実現され得る。
【図面の簡単な説明】
【００２１】
【図１】本実施例に係るファイル管理装置の概略構成を示す説明図である。
【図２】本実施例に係るファイル管理装置の内部概略構成を示す説明図である。
【図３】本実施例に係るファイル管理装置が備えるソフトウェア構成を機能ブロックで示す説明図である。
【図４】本実施例に係るファイル管理装置において実行される高速ファイル処理における処理ルーチンを示すフローチャートである。
【図５】表示画面上におけるファイル選択の一例を示す説明図である。
【図６】表示画面上におけるファイル処理内容確定の一例を示す説明図である。
【図７】ファイル処理確定前における、本実施例における高速ファイル処理と従来のファイル処理との内部処理の相違を示す説明図である。
【図８】ファイル処理確定後における、本実施例における高速ファイル処理と従来のファイル処理との内部処理の相違を示す説明図である。
【図９】表示画面上におけるファイル選択の他の例を示す説明図である。
【図１０】表示画面上におけるファイル選択の更に他の例を示す説明図である。
【図１１】表示画面上におけるフォルダ選択による全ファイル選択の例を示す説明図である。
【図１２】表示画面上におけるファイル処理内容確定の他の例を示す説明図である。
【図１３】本実施例に係るファイル管理装置の他の構成を機能ブロックで示す説明図である。
【図１４】本実施例に係るファイル管理装置における、キャッシュを配置可能なドライバ位置を示す説明図である。
【発明を実施するための形態】
【００２２】
ファイル管理装置の構成：
図１は本実施例に係るファイル管理装置の概略構成を示す説明図である。図２は本実施例に係るファイル管理装置の内部概略構成を示す説明図である。本実施例に係るファイル管理装置１０は、表示装置２０、外部記憶装置３０および入力装置４０を備えている。外部記憶装置３０は、ファイル管理装置１０とは別の筐体に格納されている大容量記憶装置３０ａであっても良く、あるいは、ファイル管理装置１０に内蔵されている大容量記憶装置３０ｂであっても良い。別体の筐体に格納されている大容量記憶装置３０ａは、ケーブルＣＶによってファイル管理装置１０と接続されている。
【００２３】
ファイル管理装置１０は、例えば、汎用的なパーソナルコンピュータであり、図２に示すように、中央処理装置（ＣＰＵ）１００、メモリ１１０、キャッシュメモリ１１０ｃ、入出力（Ｉ／Ｏ）インターフェース１２０、内部バス１３０、外部記憶装置３０ｂを備えている。ＣＰＵ１００、メモリ１１０、キャッシュメモリ１１０ｃ、入出力（Ｉ／Ｏ）インターフェース１２０および外部記憶装置３０ｂは、内部バス１３０を介して相互に通信可能に接続されている。本実施例におけるメモリ１１０は、主記憶装置、一時記憶装置と呼ばれている揮発性の半導体メモリ（ランダムアクセスメモリ）および不揮発性の半導体メモリ（リードオンリメモリ）であり、その一部がキャッシュメモリ１１０ｃとして機能しても良い。さらに、キャッシュメモリ１１０ｃは、ＣＰＵ１００と一体に備えられていても良い。ここで、キャッシュメモリ１１０ｃは、ＣＰＵ１００によるアクセス時間、すなわち、データの読み出しおよび書き込みに要する時間が、外部記憶装置３０に対するアクセス時間よりも短い記憶装置を意味する。
【００２４】
ＣＰＵ１００は、外部記憶装置３０またはリードオンリメモリに格納されているアプリケーションプログラムをランダムアクセスメモリに展開し、アプリケーションプログラムに基づく各種処理を実行する。入出力インターフェース１２０は、表示装置２０、外部記憶装置３０ａおよび入力装置４０といった周辺装置とファイル管理装置１０とを接続するための物理的なインターフェースであり、ＵＳＢ（ユニバーサルシリアルバス）ポート、シリアルポート、パラレルポート、ＳＣＳＩ（スモールコンピュータシステムインターフェース）ポート、その他のポートを含み得る。なお、入出力インターフェース１２０を介した各周辺装置の制御は、メモリ１１０または外部記憶装置３０に格納されているデバイスドライバによって実現される。
【００２５】
表示装置２０は、ファイル管理装置１０によって実行される各種ファイル処理実行時におけるグラフィカルユーザインターフェース（ＧＵＩ）を表示する。例えば、後述するように、ファイルを示すアイコン、ファイルのコピー先、または、移動先としてのフォルダを示すアイコン、ファイル管理アプリケーションプログラムにより提供されるファイル一覧画面等を表示する。
【００２６】
外部記憶装置３０は、大容量記憶装置（マスストレージデバイス）であり、例えば、一または複数のハードディスクドライブ、フラッシュメモリによって実現される。外部記憶装置３０は、オペレーティングシステム、アプリケーションプログラムを格納する記憶装置として、あるいは、ファイルを格納する記憶装置として用いられ得る。外部記憶装置３０は、主記憶装置、一時記憶装置であるメモリ１１０に対して、補助記憶装置、二次記憶装置とも呼ばれる。
【００２７】
入力装置４０は、キーボード、マウスといったポインティングデバイスを含み、ファイル管理装置１０に対して、ユーザの要求等を入力するために用いられる。本実施例では、マウスをクリックすることにより、ファイル処理の対象となるファイルが選択され、対象ファイルがマウスを用いて任意のフォルダにドラッグ＆ドロップされることによって、コピー先または移動先となるフォルダの指定、および対象ファイルの処理内容の確定が実現される。あるいは、キーボードを介して、ファイル管理アプリケーションプログラムにより提供されるファイル一覧画面から、対象ファイルの選択、対象ファイルの処理内容（コピーまたは移動）の確定、対象ファイルのコピー先または移動先の指定が実行される。なお、ドラッグ＆ドロップによる対象ファイルの処理内容の確定は、ファイル管理アプリケーションプログラムによって設定されるべき内容であり、例えば、同一外部記憶装置３０内であれば移動、異なる外部記憶装置間であればコピーといった様に予め設定されていてもよく、あるいは、ドロップ時に選択するように設定されていても良い。
【００２８】
図３は本実施例に係るファイル管理装置が備えるソフトウェア構成を機能ブロックで示す説明図である。ファイル管理装置１０は、オペレーティングシステムＯＳ、デバイスドライバＤＤをソフトウェア構成として備えている。オペレーティングシステムＯＳは、ファイル管理装置１０を構成するハードウェアを動作させるための基本プログラムであり、アプリケーションプログラムに対してハードウェアを動作させるためのインターフェースを提供する。オペレーティングシステムＯＳ上では、アプリケーションプログラムＰｒとして、ファイル処理プログラムＰ１および高速ファイル処理実行プログラムＰ２が動作する。デバイスドライバＤＤは、少なくとも、ファイルアクセスドライバＤ１およびキャッシュドライバＤ２を備えている。
【００２９】
ファイル処理プログラムＰ１は、外部記憶装置３０に格納されている各種ファイルを管理するためのプログラムであり、ユーザの入力指示に従い、フォルダ単位でのファイルの一覧、ファイルのコピー、移動、削除といったファイルに対する各種処理を、ファイルアクセスドライバＤ１を介して実行し、また、処理内容確定部として機能し得る。なお、本実施例におけるファイル処理は、ファイルのコピーまたは移動を意味する。すなわち、外部記憶装置３０に格納されているファイルの所定フォルダ（アドレス）からの読み出し、所定フォルダ（アドレス）への書き込み指示を意味する。ファイル処理プログラムＰ１は、例えば、オペレーティングシステムＯＳに搭載されているエクスプローラであっても良く、あるいは、アプリケーションプログラムＰｒとして提供される種々のファイル処理プログラムであっても良い。
【００３０】
高速ファイル処理実行プログラムＰ２は、ファイルの高速なコピーまたは移動を、キャッシュドライバＤ２を介して実現するためのプログラムであり、例えば、ファイル処理プログラムＰ１の起動をトリガにして起動される。高速ファイル処理実行プログラムＰ２は、対象ファイル特定部として機能し、ファイル処理プログラムＰ１実行時に、ユーザによるファイルの選択またはファイルの指定を検知し、ファイルの処理内容が確定する前に、キャッシュドライバＤ２を介して、外部記憶装置３０から選択されたファイルを読み出し、キャッシュメモリＣＭに格納させる。具体的には、オペレーティングシステムがWindows（登録商標）の場合、ＡＰＩ関数の１つであるSetWindowsHookEx()関数をファイル処理プログラムＰ１の起動時に実行させることで、入力装置４０を介したファイル選択操作のシステムメッセージが高速ファイル処理実行プログラムＰ２に送信され、高速ファイル処理実行プログラムＰ２は、ファイルの処理内容が確定する前にファイル選択操作を検知することができる。ファイル処理操作を事前に検知した高速ファイル処理実行プログラムＰ２は、キャッシュドライバＤ２に対して、選択されたファイルを読み出し、キャッシュメモリＣＭに格納するように指示し、システムメッセージをファイル処理プログラムＰ１に送信する。
【００３１】
ファイルアクセスドライバＤ１は、ファイル処理プログラムＰ１からの指示に従い、外部記憶装置３０に対するファイルの読み書きを実行する。すなわち、ファイルアクセスドライバＤ１は、ファイル処理プログラムＰ１によって指定された論理アドレスと外部記憶装置３０における物理アドレスとの変換処理を実行する機能、外部記憶装置３０においてセクター単位で記憶されている１または複数のセクター単位データを１つのファイルとして対応付けて、ファイル処理プログラムＰ１に対して提供する機能を備えている。すなわち、一般的なファイル処理では、ファイルアクセスドライバＤ１は、ファイル処理プログラムＰ１からの確定されたファイル処理の指示に従って、対象ファイルを外部記憶装置３０から読み出してキャッシュに格納し、キャッシュに格納した対象ファイルをコピー先または移動先となるフォルダに書き込む。
【００３２】
本実施例では、高速ファイル処理実行プログラムＰ２が実行される場合には、キャッシュドライバＤ２によって、ファイルアクセスドライバＤ１により実現されるファイルアクセスの機能が実行される。したがって、キャッシュドライバＤ２は、対象ファイル取得部として機能する。キャッシュドライバＤ２は、対象ファイルが検知された段階で、高速ファイル処理実行プログラムＰ２から指示を受け、対象ファイルを外部記憶装置３０から読み出し、キャッシュメモリＣＭに格納する。キャッシュドライバＤ２は、ファイル処理プログラムＰ１によってファイル処理内容が確定されると、確定された処理に従い、キャッシュメモリＣＭに格納されているファイルを外部記憶装置３０の所定のアドレスに書き込む。すなわち、ファイル処理プログラムＰ１は、対象ファイルに対する処理内容が確定されると、キャッシュメモリＣＭから対象ファイルを読み出し、キャッシュドライバＤ２を介して、外部記憶装置３０に対する書き込み処理を実行する。なお、外部記憶装置３０に対する対象ファイルの書き込みのみ、ファイルアクセスドライバＤ１を介して実行されても良い。
【００３３】
高速ファイル処理：
図４は本実施例に係るファイル管理装置において実行される高速ファイル処理における処理ルーチンを示すフローチャートである。図５は表示画面上におけるファイル選択の一例を示す説明図である。図６は表示画面上におけるファイル処理内容確定の一例を示す説明図である。ファイル管理装置１０（ＣＰＵ１００）は、入力装置４０を介して、ファイル処理プログラムＰ１の実行要求を受けると、高速ファイル処理実行プログラムＰ２を実行し、入力装置４０からのファイル選択入力を待機する（ステップＳ１００：Ｎｏ）。ＣＰＵ１００は、図５に示すように、マウスのポインタ２１によって示されている対象ファイル５０が選択されると、ファイル選択入力を検知し（ステップＳ１００：Ｙｅｓ）、キャッシュドライバＤ２を実行して、外部記憶装置３０から選択されたファイルを読み出し、キャッシュメモリ１１０ｃに格納する。なお、対象ファイルの選択に際しては、１のファイルのみならず、複数のファイルが選択されても良いことは言うまでもない。図５では、選択状態であることを示すために、対象ファイル５０の表示色を変更している。
【００３４】
ファイル選択入力の検知は、上述のように、SetWindowsHookEx()関数を予め実行させておくことによって、高速ファイル処理実行プログラムＰ２は、ファイル処理プログラムＰ１よりも先に入力装置４０を介したファイル選択操作に関するシステムメッセージを検知することができる。すなわち、ポインタ２１によって対象ファイル５０が指し示されている状態にてマウスがクリックされると、オペレーティングシステムＯＳからファイル操作のシステムメッセージが高速ファイル処理実行プログラムＰ２に送信され、高速ファイル処理実行プログラムＰ２は受信後、ファイル処理プログラムＰ１によるファイル処理を実行させるためファイル処理プログラムＰ１に対して、ファイル操作のシステムメッセージを送信する。
【００３５】
ＣＰＵ１００はファイル処理内容の確定を待機し（ステップＳ１２０：Ｎｏ）、ファイル処理プログラムＰ１によってファイル処理内容が確定されると（ステップＳ１２０：Ｙｅｓ）、キャッシュドライバＤ２を実行して、選択ファイルをキャッシュメモリ１１０ｃから読み出し、外部記憶装置３０における指定されたフォルダへ書き込む（ステップＳ１３０）。ファイル処理内容は、たとえば、ファイル選択後に、マウス操作によって表示される選択メニューからコピー、移動といったコマンドが選択されることにより、あるいは、図６に示すように、マウス（ポインタ２１）によって対象ファイル５０が目的フォルダ５５に対してドラッグアンドドロップされることによって確定する。ドラッグアンドドロップ操作によってファイル処理内容が確定する場合には、既述のように、同一外部記憶装置内におけるファイルのドラッグアンドドロップ操作は移動、異なる外部記憶装置間におけるファイルのドラッグアンドドロップ操作はコピーといったように予め対応する確定ファイル処理内容が設定されている。
【００３６】
ＣＰＵ１００は、確定されたファイル処理内容がコピー処理である場合には（Ｓ１４０：コピー処理）、本処理ルーチンを終了する。ＣＰＵ１００は、確定されたファイル処理内容がコピー処理でない場合には（Ｓ１４０：移動処理）、選択されたファイルをキャッシュメモリ１１０ｃからクリアして（ステップＳ１５０）、本処理ルーチンを終了する。なお、選択されたファイルをキャッシュメモリからクリア（削除）する処理は、本処理ルーチンには組み込まれていなくても良い。すなわち、異なる条件に従って、キャッシュメモリに格納されているファイルのクリア処理が実行されても良い。
【００３７】
キャッシュメモリに格納されている先読みファイルは、以下のようにして取り扱われ得る。
・対象ファイルの処理がキャンセルされた場合の処理
ファイル処理プログラムＰ１において、対象ファイル処理のキャンセルが受け付けられた場合には、対象ファイルのキャンセル要求は高速ファイル処理実行プログラムＰ２に送信され得るため、高速ファイル処理実行プログラムＰ２はキャッシュドライバＤ２に対して、キャッシュメモリＣＭに保持されている対象ファイルを破棄（クリア）するよう指示しても良い。あるいは、高速ファイル処理実行プログラムＰ２が、対象ファイルの先読み機能のみを備える場合であって、ファイル処理プログラムＰ１がキャッシュドライバＤ２にアクセス可能な場合には、ファイル処理プログラムＰ１によって、キャッシュドライバＤ２に対して、キャッシュメモリＣＭに保持されている対象ファイルを破棄（クリア）するように指示しても良い。
【００３８】
・一定時間が経過した場合の処理
一方、ファイル処理プログラムＰ１がキャッシュドライバＤ２にアクセス不可能な場合には、一定時間経過後にキャッシュメモリＣＭに保持されている対象ファイルを破棄（クリア）しても良い。一定時間経過後のキャッシュメモリＣＭのクリアには以下の態様が含まれる。
【００３９】
作業用キャッシュサイズが可変のキャッシュドライバであれば、タイマー等で時間を監視し、一定時間に使用されなかったキャッシュメモリＣＭ中の対象ファイルを破棄することで、余分なメモリ使用量を抑えることができる。一方、作業用キャッシュサイズが固定で、次のファイルが送られてきた場合に上書きするタイプのキャッシュドライバであれば、次のファイルが格納されるまで保持し続けても良い。
【００４０】
・次のファイル操作が開始された場合の処理
作業用キャッシュサイズが固定のキャッシュドライバでは、空き領域があればその領域に、空き領域がなければ最も古いキャッシュデータの格納領域に新しいファイルが上書きされ、古いキャッシュデータは消去される。あるいは、古いキャッシュデータが消去された後に、新しいファイルが書き込まれる。高度なアルゴリズムを持ったキャッシュドライバの場合はアクセス回数やアクセス時間から優先度を設定し、優先度の低いキャッシュファイルから破棄していっても良い。例えば、アクセス回数が多いファイル、アクセス時間の長いファイルに対して高い優先度を与えられる。
【００４１】
上記の他にも、キャッシュドライバＤ２は、外部記憶装置３０から対象ファイルが読み出されるたびに、キャッシュメモリＣＭに保持されているキャッシュ済みの対象ファイルを消去しても良く、あるいは、キャッシュメモリＣＭに保持されている対象ファイルに対する確定した処理内容の実行処理が完了するたびにキャッシュメモリＣＭに保持されているキャッシュ済みの対象ファイルを消去しても良い。
【００４２】
以上述べたように、本実施例に係るファイル管理装置１０によれば、対象ファイルが選択された時点で、高速ファイル処理実行プログラムＰ２がキャッシュドライバＤ２を介して対象ファイルを外部記憶装置３０（３０）から読み出し、キャッシュメモリＣＭに格納するので、対象ファイルに対する処理内容が確定した時点で速やかに確定された処理を実行、完了することができる。すなわち、本実施例に係るファイル管理装置１０では、対象ファイルに対する処理内容が確定する前に、ファイルの読み書きに時間を要する外部記憶装置３０（３０）から、ファイルの読み書きに要する時間が短いキャッシュメモリＣＭに格納しているので、ファイル処理内容が確定した際に、速やかに対象アドレスへファイルを書き込み（コピー、移動）することができる。以下、具体的に図示して説明する。
【００４３】
図７は、ファイル処理確定前における、本実施例における高速ファイル処理と従来のファイル処理との内部処理の相違を示す説明図である。図８は、ファイル処理確定後における、本実施例における高速ファイル処理と従来のファイル処理との内部処理の相違を示す説明図である。
【００４４】
図７に示すように、従来例では、ファイル選択時、すなわち、ファイル処理内容確定前には、ファイル処理プログラムから外部記憶装置に対するアクセスは何も発生していない。これに対して、本実施例に係るファイル管理装置１０では、ファイル選択操作に応答して、高速ファイル処理実行プログラムからキャッシュドライバに対して選択された対象ファイルの読み出し（先読み）が指示され、キャッシュドライバは指示に応じて対象ファイルを外部記憶装置から読み出し、キャッシュメモリに格納する。なお、本実施例におけるキャッシュドライバは、ファイルアクセスドライバの機能を有しており、論理的な対象ファイルの読み出し指示に応じて外部記憶装置における対応する物理アドレスにアクセスし、対象ファイルを構成するセクタデータを取得することができる。キャッシュメモリに対するデータの読み書き時間（アクセス時間）は、外部記憶装置に対するデータの読み書き時間（アクセス時間）と比較して極めて短いことは良く知られた事実である。
【００４５】
図８に示すように、従来例では、コピーまたは移動処理実行時、すなわち、ファイル処理内容確定後に初めて、ファイル処理プログラムから、ファイルアクセスドライバ（図示しない）に対して対象ファイルの読み出しが指示され、外部記憶装置から読み出された対象ファイルはキャッシュメモリに格納されると共に、ファイル処理プログラムによって、確定されたファイル処理内容を実行するために用いられる。具体的には、ファイルアクセスドライバを介して、外部記憶装置におけるコピー先または移動先フォルダに対して、読み出されたファイルが書き込まれる。
【００４６】
これに対して、本実施例に係るファイル管理装置１０では、ファイル処理内容確定時には、既に対象ファイルはキャッシュメモリに格納されており、ファイル処理プログラムは、キャッシュメモリに格納されている対象ファイルを、キャッシュドライバまたはファイルアクセスドライバを介して、外部記憶装置におけるコピー先または移動先フォルダに対して、書き込む。したがって、ファイル処理内容確定時における、対象ファイルをキャッシュメモリに格納するために要する時間を排除または低減させることが可能となり、ファイルのコピー先または移動処理に要する時間を短縮することができる。
【００４７】
その他の実施例：
（１）上記実施例では、ポインタ２１を介して、対象ファイルが選択されるというイベントをトリガにして、対象ファイルの外部記憶装置からキャッシュメモリへの先読みが実行されているが、この他にも、図９および１０に示すように、他のイベントをトリガとしても良い。
【００４８】
図９では、表示装置２０の表示画面において、対象ファイル５１上にポインタ２１がマウスオーバ、すなわち、対象ファイル５１上にポインタ２１が移動されるというイベントをトリガとする態様を示している。図９では、非選択状態であることを示すために、対象ファイル５１の表示色を変更していない。対象ファイル５１が選択される前には、対象ファイル上にポインタ２１が移動されるので、このタイミングにて、対象ファイル５１のキャッシュメモリへの先読みを実行することで、さらに、ファイル処理に要する時間を短縮することができる。
【００４９】
対象ファイル５１上にポインタ２１が移動されるというイベントは、既述のようにSetWindowsHookEx()関数を事前に実行しておきマウスの移動や位置を検知できるように設定し、EnumWindows()関数やFindWindow()関数でファイル処理プログラムのウィンドウを検出し、タイトル名等から表示中のフォルダのパスを取得する。マウスのポインタ２１が移動するたびにポインタ２１の座標を取得し、WindowFromPoint()関数でポインタ２１の位置にエクスプローラのウィンドウが存在するか否かを判定し、存在する場合にはポインタ２１がどのアイコン（ファイル）上に存在するかをファイル名から判定することで実現される。対象ファイルのアドレス（フルパス）は、取得済みのフォルダパスとファイル名とを合成することによって得ることができる。
【００５０】
図１０では、表示装置２０の表示画面において、ファイル処理プログラムによって提供されるファイルの一覧表示の中から、キーボードまたはマウスを使用して、対象ファイル５２が選択される態様を示している。図１０の態様では、各ファイルはリスト形式で表示され、アイコン形式で表示されていないが、この態様においても、ポインタ２１によって選択またはマウスオーバされたファイル５２が対象ファイルとして外部記憶装置から先読みされ、キャッシュメモリに格納される。なお、マウスを用いた選択に代えて、キーボードの方向キーを用いて選択ファイルが選択されても良いことは言うまでもない。
【００５１】
（２）上記実施例では、フォルダに含まれる個々のファイルが選択される態様について説明したが、図１１に示すように、フォルダ単位にてコピーまたは移動の対象が選択されても良い。図１１では、表示装置２０の表示画面において、ファイル処理プログラムによって提供されるファイルの一覧表示画面において対象フォルダを選択することによって当該フォルダ５６内に含まれる全てのファイル５３が選択される態様を示している。フォルダ指定による全ファイルの選択は、たとえば、EnumWindows()関数やFindWindow()関数でファイル処理プログラムのウィンドウを検出し、タイトル名等から表示中のフォルダのパスを取得し、FindFirstFile()関数等のＡＰＩ関数を用いてファイル処理プログラムとは関係なくファイルの一覧を取得することによって実行される。
【００５２】
（３）上記実施例では、ファイル処理内容確定時にファイル処理内容であるコピーまたは移動が設定される場合、あるいは、ファイルの移動先が同一外部記憶装置内または異なる外部記憶装置間であるかによってコピーまたは移動が設定される場合について説明したが、図１２に示すように、表示装置２０の表示画面において、ファイル５０をフォルダ５５にドロップする際に、メニュー２２を介した操作によってコピーまたは移動の処理が確定されても良い。
【００５３】
（４）上記実施例では、キャッシュドライバＤ２にファイルアクセスドライバＤ１の機能を持たせた態様に基づいて説明したが、キャッシュドライバＤ２１とファイルアクセスドライバＤ１との協働によって、対象ファイルの先読みが実行されても良い。図１３は、本実施例に係るファイル管理装置の他の構成を機能ブロックで示す説明図である。図１３の例では、高速ファイル処理実行プログラムＰ２は、ファイル処理プログラムＰ１実行時に、ユーザによるファイルの選択またはファイルの指定を検知し、ファイルの処理内容が確定する前に、キャッシュドライバＤ２１およびファイルアクセスドライバＤ１を介して、外部記憶装置３０から選択されたファイルを読み出し、キャッシュメモリＣＭに格納させる。
【００５４】
（５）上記実施例では、ファイルアクセスドライバよりも上位層においてキャッシュドライバＤ２を備え、対象ファイルをキャッシュメモリに格納しているが、ファイルアクセスドライバよりも下位層にキャッシュドライバＤ２を備え、対象ファイルをキャッシュメモリに格納するようにしても良い。すなわち、高速ファイル処理実行プログラムＰ２は、ファイルアクセスドライバよりも下位層に配置されたキャッシュドライバＤ２に対して対象ファイルの先読みを指示する。図１４は本実施例に係るファイル管理装置における、キャッシュドライバを配置可能な配置位置を示す説明図である。上記実施例では、説明を簡単にするため、外部記憶装置３０に対してアクセスするために必要なドライバ群をファイルアクセスドライバの総称を用いて説明した。オペレーティングシステムＯＳまたはアプリケーションプログラムＰｒが外部記憶装置３０に対してアクセスし、ファイルの読み書きを実行するためには、ファイルアクセスドライバには、例えば、ファイルシステムドライバ、マスストレージドライバ、Ｉ／Ｆドライバといった種々のドライバが含まれ得る。ファイルシステムドライバは、セクタ単位にて格納されているファイルに対応するデータをファイル単位（ファイルレベル）で取り扱い可能にするためのドライバである。マスストレージドライバは、ＵＳＢ機器を記憶装置として認識し、制御するためのドライバであり、外部記憶装置３０がＵＳＢインターフェースによってファイル管理装置１０に接続される場合に必要となるドライバである。Ｉ／Ｆドライバは、外部記憶装置３０のインターフェースに応じて、制御信号の変換等を実行するためのドライバであり、最も外部記憶装置３０の影響を受けるドライバである。なお、キャッシュドライバＤ２をファイルシステムドライバよりも下位層に配置する場合には、外部記憶装置（に対応するドライバ）毎に、キャッシュドライバＤ２を備えなければならないことがあり、ファイルシステムドライバ（ファイルアクセスドライバ）よりも上位層に、キャッシュドライバＤ２が備えられていることが望ましい。
【００５５】
外部記憶装置３０において、ファイルは、通常、セクタ単位にて様々な（不連続な）アドレスに格納されており、ファイルシステム機能を提供するファイルシステムドライバを介することによって初めて、ファイル単位で取り扱うことができる。ファイルシステムドライバは、ファイルを構成するセクタをアドレスするためのポインタテーブルを用いて、ファイル管理装置１０（ファイル処理プログラム）によって、所定のファイルが指定されると、当該ファイルに対応付けられたポインタテーブルを参照して当該ファイルを構成するセクタ単位のデータを読み出し、ファイル単位でファイル処理プログラムに提供する。したがって、キャッシュドライバＤ２がファイルシステムドライバよりも上層に配置されている場合には、先読みされたファイル構成データをファイル単位にてキャッシュメモリに格納することができるが、キャッシュドライバＤ２がファイルシステムドライバよりも下位（外部記憶装置寄り）に配置されている場合には、ファイルを構成するセクタ単位のデータをファイル単位にて扱うことができず、先読みされたファイル構成データは、セクタ単位にてキャッシュメモリに格納される。但し、セクタ単位で格納することによって、キャッシュメモリの記憶領域を有効に使用することができる。
【００５６】
（６）上記実施例では、ファイル処理プログラムと高速ファイル処理実行プログラムとが別々のプログラムの場合について説明したが、ファイル処理プログラムに高速ファイル処理実行プログラムの機能が組み込まれていても良い。この場合には、一のファイル処理プログラムによって、高速なファイル処理を実現することができる。
【００５７】
（７）上記実施例では、ファイル処理の例として、ファイルのコピーまたは移動を例にとって説明したが、この他にも、ファイルを実行ファイル（アプリケーションプログラム）のアイコン上へドラッグアンドドロップするファイル操作に対応し、対応アプリケーションを起動させても良い。すなわち、ファイル処理として、ファイルに対応付けられているアプリケーションプログラムを起動するようにしても良い。この場合であっても、アプリケーションプログラムは、起動後にドロップされたファイルを外部記憶装置から読み出さなければならず、アプリケーションプログラムによってファイルが開かれるまで、従来時間を要していた。これに対して、本実施例に係るファイル管理装置１０によれば、上述のように、対象ファイルが選択された時点において、対象ファイルはキャッシュメモリに格納されているので、アプリケーションプログラムによってファイルが開かれるまでに要する時間を短縮することができる。
【００５８】
（８）上記実施例において、キャッシュドライバＤ２は、読み出したファイルをキャッシュメモリに格納する機能（読み出しキャッシュ機能）を有しているが、キャッシュドライバＤ２が読み出しキャッシュ機能を有していない場合には、高速ファイル処理実行プログラムＰ２によって、キャッシュドライバＤ２に対して、読み出したファイルをキャッシュメモリに格納するように指示する。
【００５９】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【００６０】
１０…ファイル管理装置
１００…ＣＰＵ
１１０…メモリ
１１０ｃ…キャッシュメモリ
１２０…入出力インターフェース
１３０…内部バス
２０…表示装置
２１…ポインタ
２２…メニュー
３０、３０ａ、３０ｂ…外部記憶装置
４０…入力装置
５０…ファイル
５５…フォルダ
ＣＭ…キャッシュメモリ
ＣＶ…ケーブル
Ｄ１…ファイルアクセスドライバ
Ｄ２…キャッシュドライバ
Ｄ２１…キャッシュドライバ
ＤＤ…デバイスドライバ
ＯＳ…オペレーティングシステム
Ｐ１…ファイル処理プログラム
Ｐ２…高速ファイル処理実行プログラム
Ｐｒ…アプリケーションプログラム
【図１】
0005391153.tif 000002
【図２】
0005391153.tif 000003
【図３】
0005391153.tif 000004
【図４】
0005391153.tif 000005
【図５】
0005391153.tif 000006
【図６】
0005391153.tif 000007
【図７】
0005391153.tif 000008
【図８】
0005391153.tif 000009
【図９】
0005391153.tif 000010
【図１０】
0005391153.tif 000011
【図１１】
0005391153.tif 000012
【図１２】
0005391153.tif 000013
【図１３】
0005391153.tif 000014
【図１４】
0005391153.tif 000015