(57)【要約】【課題】ファイルをスキャンするための方法及び装置を提供する。【解決手段】本発明によるファイルをスキャンするための方法は、ディレクトリのトラバース中に、トラバースされるディレクトリに対して第１の処理を行うステップを含む。第１の処理は、トラバースされるディレクトリのディレクトリ属性を取得するステップと、取得されたディレクトリ属性に従って、トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定し、再マッピングされたディレクトリである場合には、トラバースされるディレクトリに対してスキャン処理を行わず、再マッピングされたディレクトリでない場合には、トラバースされるディレクトリに対してスキャン処理を行うステップとを含む。本発明により、スキャン中のＩＯオーバーヘッド及びＣＰＵオーバーヘッドを効果的に減少させることができ、それによりファイルスキャン効率を改良する。【選択図】      図１
2016045929.tif 000002
【特許請求の範囲】
【請求項１】
ファイルをスキャンするための方法であって、前記方法が、
ディレクトリのトラバース中に、前記トラバースされるディレクトリに対して第１の処理を行うステップを含み、前記第１の処理が、
前記トラバースされるディレクトリのディレクトリ属性を取得するステップと、
取得された前記ディレクトリ属性に従って、前記トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定し、再マッピングされたディレクトリである場合には、前記トラバースされるディレクトリに対してスキャン処理を行わず、再マッピングされたディレクトリでない場合には、前記トラバースされるディレクトリに対してスキャン処理を行うステップと
を含み、前記スキャン処理が、
前記トラバースされるディレクトリ内の様々なファイルをスキャンしてスキャン結果を取得するステップ、及び／又は前記トラバースされるディレクトリ内の様々なサブディレクトリに対して第２の処理を行うステップを含み、
前記トラバースされるディレクトリ内の様々なサブディレクトリに対して第２の処理を行うステップが、前記様々なサブディレクトリをトラバースし、前記トラバースされるサブディレクトリに対して前記第１の処理と同じ処理を行うステップを含む
ことを特徴とする、方法。
【請求項２】
前記トラバースされるディレクトリのディレクトリ属性を取得する前記ステップが、
Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓオペレーティングシステムのアプリケーションプログラムインターフェースによって、前記トラバースされるディレクトリのディレクトリ属性を取得するステップ
を含むことを特徴とする、請求項１に記載の方法。
【請求項３】
取得された前記ディレクトリ属性に従って、前記トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定する前記ステップが、
取得された前記ディレクトリ属性にＦＩＬＥ＿ＡＴＴＲＩＢＵＴＥ＿ＲＥＰＡＲＳＥ＿ＰＯＩＮＴ属性フラグが含まれているかどうかを特定し、前記属性フラグが前記ディレクトリ属性に含まれている場合には、前記トラバースされるディレクトリが再マッピングされたディレクトリであり、前記属性フラグが前記ディレクトリ属性に含まれていない場合には、前記トラバースされるディレクトリが再マッピングされたディレクトリではない
ことを特徴とする、請求項１に記載の方法。
【請求項４】
前記トラバースされるディレクトリが再マッピングされたディレクトリであることを特定した後に、次のディレクトリをトラバースするステップ、又は
前記トラバースされるディレクトリに対する前記スキャン処理を完了した後に、次のディレクトリをトラバースするステップ
を更に含むことを特徴とする、請求項１に記載の方法。
【請求項５】
ファイルをスキャンするための装置であって、前記装置が、
ディレクトリをトラバースするためのディレクトリトラバースユニットと、
前記ディレクトリトラバースユニットによってトラバースされる前記ディレクトリに対して第１の処理を行うための第１の処理ユニットと
を備え、前記第１の処理が、
前記トラバースされるディレクトリのディレクトリ属性を取得するステップと、
取得された前記ディレクトリ属性に従って、前記トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定し、再マッピングされたディレクトリである場合には、前記トラバースされるディレクトリに対してスキャン処理を行わず、再マッピングされたディレクトリでない場合には、前記トラバースされるディレクトリに対してスキャン処理を行うステップと
を含み、前記スキャン処理が、
前記トラバースされるディレクトリ内の様々なファイルをスキャンしてスキャン結果を取得するステップ、及び／又は第２の処理ユニットを呼び出して、前記トラバースされるディレクトリ内の様々なサブディレクトリに対して処理を行うステップを含み、
前記装置が更に、前記トラバースされるディレクトリ内の様々なサブディレクトリをトラバースし、前記トラバースされるサブディレクトリに対して前記第１の処理と同じ処理を行うための前記第２の処理ユニットを備える
ことを特徴とする、装置。
【請求項６】
前記第１の処理ユニットが、
Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓオペレーティングシステムのアプリケーションプログラムインターフェースによって、前記トラバースされるディレクトリのディレクトリ属性を取得するためのディレクトリ属性取得モジュール
を備えることを特徴とする、請求項５に記載の装置。
【請求項７】
前記第１の処理ユニットが、
取得された前記ディレクトリ属性にＦＩＬＥ＿ＡＴＴＲＩＢＵＴＥ＿ＲＥＰＡＲＳＥ＿ＰＯＩＮＴ属性フラグが含まれているかどうかに従って、前記トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定するための特定モジュールを備え、前記属性フラグが前記ディレクトリ属性に含まれている場合には、前記トラバースされるディレクトリが再マッピングされたディレクトリであり、前記属性フラグが前記ディレクトリ属性に含まれていない場合には、前記トラバースされるディレクトリが再マッピングされたディレクトリではない
ことを特徴とする、請求項５に記載の装置。
【請求項８】
前記ディレクトリトラバースユニットが更に使用されて、前記トラバースされるディレクトリが再マッピングされたディレクトリであることを前記第１の処理ユニットが特定した後に、又は前記トラバースされるディレクトリに対する前記スキャン処理を前記第１の処理ユニットが完了した後に、次のディレクトリをトラバースする
ことを特徴とする、請求項５に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルスキャンの分野に関し、特にファイルをスキャンするための方法及び装置に関する。
【背景技術】
【０００２】
オペレーティングシステム内の特定のディレクトリに再マッピングされる多くのディレクトリが存在し、既存のファイルスキャン技術では、スキャンエンジンが呼び出され、これらのディレクトリの下にあるファイルの読み出しや特徴の計算など、時間のかかるアクションを実行する。このため、スキャンエンジンが多量の無駄な作業を行い、これは、スキャン中の入出力（ＩＯ）オーバーヘッド及び中央処理装置（ＣＰＵ）オーバーヘッドを高め、スキャン効率を低下させる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
既存のファイルスキャン技術の欠点を解決するために、ファイルをスキャンするための方法及び装置が本発明の実施形態で提示され、これによってスキャン中のＩＯオーバーヘッド及びＣＰＵオーバーヘッドを減少させることができ、それによりファイルスキャン効率を改良する。
【課題を解決するための手段】
【０００４】
一態様では、本発明の一実施形態は、ファイルをスキャンするための方法であって、この方法が、
ディレクトリのトラバース中に、トラバースされるディレクトリに対して第１の処理を行うステップを含み、第１の処理が、
トラバースされるディレクトリのディレクトリ属性を取得するステップと、
取得されたディレクトリ属性に従って、トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定し、再マッピングされたディレクトリである場合には、トラバースされるディレクトリに対してスキャン処理を行わず、再マッピングされたディレクトリでない場合には、トラバースされるディレクトリに対してスキャン処理を行うステップと
を含み、スキャン処理が、
トラバースされるディレクトリ内の様々なファイルをスキャンしてスキャン結果を取得するステップ、及び／又はトラバースされるディレクトリ内の様々なサブディレクトリに対して第２の処理を行うステップを含み、
トラバースされるディレクトリ内の様々なサブディレクトリに対して第２の処理を行うステップが、様々なサブディレクトリをトラバースし、トラバースされるサブディレクトリに対して第１の処理と同じ処理を行うステップを含む
方法を提供する。
【０００５】
本発明の幾つかの実施形態の一実装形態では、トラバースされるディレクトリのディレクトリ属性を取得するステップが、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ(登録商標）オペレーティングシステムのアプリケーションプログラムインターフェースによって、トラバースされるディレクトリのディレクトリ属性を取得するステップを含む。
【０００６】
本発明の幾つかの実施形態の別の実装形態では、取得されたディレクトリ属性に従って、トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定するステップが、取得されたディレクトリ属性にＦＩＬＥ＿ＡＴＴＲＩＢＵＴＥ＿ＲＥＰＡＲＳＥ＿ＰＯＩＮＴ属性フラグが含まれているかどうかを特定するステップを含み、その属性フラグが含まれている場合には、トラバースされるディレクトリは再マッピングされたディレクトリであり、含まれていない場合には、トラバースされるディレクトリは再マッピングされたディレクトリではない。
【０００７】
本発明の幾つかの実施形態の更に別の実装形態では、この方法は、トラバースされるディレクトリが再マッピングされたディレクトリであることが特定された後に、次のディレクトリがトラバースされるステップ、又はトラバースされるディレクトリに対するスキャン処理が完了された後に、次のディレクトリがトラバースされるステップを更に含む。
【０００８】
本発明の一実施形態は、更に、ファイルをスキャンするための装置であって、この装置が
ディレクトリをトラバースするためのディレクトリトラバースユニットと、
ディレクトリトラバースユニットによってトラバースされるディレクトリに対して第１の処理を行うための第１の処理ユニットと
を備え、第１の処理が、
トラバースされるディレクトリのディレクトリ属性を取得するステップと、
取得されたディレクトリ属性に従って、トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定し、再マッピングされたディレクトリである場合には、トラバースされるディレクトリに対してスキャン処理を行わず、再マッピングされたディレクトリでない場合には、トラバースされるディレクトリに対してスキャン処理を行うステップと
を含み、スキャン処理が、
トラバースされるディレクトリ内の様々なファイルをスキャンしてスキャン結果を取得するステップ、及び／又は第２の処理ユニットを呼び出して、トラバースされるディレクトリ内の様々なサブディレクトリに対して処理を行うステップを含み、
この装置が更に、トラバースされるディレクトリ内の様々なサブディレクトリをトラバースし、トラバースされるサブディレクトリに対して第１の処理と同じ処理を行うための第２の処理ユニットを備える
装置を提供する。
【０００９】
本発明の幾つかの実施形態の一実装形態では、第１の処理ユニットは、Ｍｉｃｒｏｓｏｆｔ  「Ｗｉｎｄｏｗｓ」オペレーティングシステムのアプリケーションプログラムインターフェースによって、トラバースされるディレクトリのディレクトリ属性を取得するためのディレクトリ属性取得モジュールを備える。
【００１０】
本発明の幾つかの実施形態の別の実装形態では、第１の処理ユニットは、取得されたディレクトリ属性にＦＩＬＥ＿ＡＴＴＲＩＢＵＴＥ＿ＲＥＰＡＲＳＥ＿ＰＯＩＮＴ属性フラグが含まれているかどうかに従って、トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定するための特定モジュールを備え、その属性フラグが含まれている場合には、トラバースされるディレクトリは再マッピングされたディレクトリであり、含まれていない場合には、再マッピングされたディレクトリではない。
【００１１】
本発明の幾つかの実施形態の更に別の実装形態では、ディレクトリトラバースユニットが更に使用されて、トラバースされるディレクトリが再マッピングされたディレクトリであることを第１の処理ユニットが特定した後に、又はトラバースされるディレクトリに対するスキャン処理を第１の処理ユニットが完了した後に、次のディレクトリをトラバースする。
【００１２】
本発明の様々な実施形態を使用することで、以下の有利な効果が得られる：
ディレクトリのディレクトリ属性に従って、その時点でトラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定し、再マッピングされたディレクトリでないと判定された場合にのみ、ディレクトリ内のファイルに対してスキャン処理が行われ、したがって、全スキャンプロセス中に、再マッピング関係を有するディレクトリに対してはスキャン処理が繰返し行われず、同じファイルは１回だけスキャンすればよく、これは、スキャン中のＩＯオーバーヘッド及びＣＰＵオーバーヘッドを効果的に減少させ、ファイルスキャン効率を改良する。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態によるファイルをスキャンするための方法の概略フローチャート
【図２Ａ】本発明の一実施形態によるファイルをスキャンするための装置のブロック図
【図２Ｂ】図２Ａに示されるファイルをスキャンするための装置の第１の処理ユニットのブロック図
【発明を実施するための形態】
【００１４】
以下、本発明の幾つかの態様を、添付図面及び実施形態に関連付けて更に詳細に述べる。周知のモジュール及びユニット、並びにそれらの間の接続、リンク、通信、又は動作については示さないか、又は詳細には述べない。更に、記載される特徴、アーキテチャ、又は機能は、実施形態の１つ又は複数において任意の様式で組み合わせることができる。当業者は、以下の様々な実施形態が単に例示のために使用されており、本発明の保護範囲を限定する目的では使用されていないことを理解されよう。また、本明細書で述べ、添付図面に示す様々な実施形態におけるモジュール、ユニット、又はステップを、様々な異なる構成に従って組み合わせて設計することができることも容易に理解されよう。
【００１５】
図１は、本発明の一実施形態によるファイルをスキャンするための方法の概略フローチャートであり、図１を参照すると、この方法は、以下のステップを含む：
ステップ１００：ディレクトリのトラバース中に、トラバースされるディレクトリに対して、ステップ１０２〜１０６を含む第１の処理が行われる。
【００１６】
ディレクトリは、ファイルシステム構造内のファイルホームポイントを識別するポインタであり、例えば、Ｍｉｃｒｏｓｏｆｔ  「Ｗｉｎｄｏｗｓ」オペレーティングシステムバージョン７のシステムインストールディスク内の「ユーザ」ディレクトリや、「ユーザ」ディレクトリ内の「全てのユーザ」ディレクトリである。
【００１７】
本発明の実施形態は、指定されたパス（例えば、指定されたディスク識別子及び指定されたフォルダ）内のファイルがスキャン対象となるシナリオに適用することができる。例えば、システムインストールディスク内のファイルがスキャン対象とされる（すなわち、システムインストールディスクに対してファイルスキャンを行う）とき、システムインストールディスク内でディレクトリをトラバースし、ディレクトリがトラバースされる度に、本発明の実施形態で提供される方法を使用してディレクトリが処理される。
【００１８】
いわゆる「トラバース」は、処理すべき対象に１回ずつ連続してアクセスすることである。例えば、ディレクトリＡ、ディレクトリＢ、及びディレクトリＣを、処理すべき対象とすると、ディレクトリＡへのトラバース時、ディレクトリＡが、その時点で処理すべき対象である。ディレクトリＡが処理された後、トラバースが続き、ディレクトリＢへのトラバース時には、ディレクトリＢがその時点で処理すべき対象となり、以下同様である。
【００１９】
ステップ１０２：トラバースされるディレクトリのディレクトリ属性が取得される。本明細書で述べる「ディレクトリ属性」は、ファイルシステム内のディレクトリに対応する属性を表すことを強調しておく。
【００２０】
任意選択的に、本発明の一実装形態において、トラバースされるディレクトリのディレクトリ属性は、Ｍｉｃｒｏｓｏｆｔ  「Ｗｉｎｄｏｗｓ」オペレーティングシステムのアプリケーションプログラムインターフェースＧｅｔＦｉｌｅＡｔｔｒｉｂｕｔｅｓ又はＧｅｔＦｉｌｅＡｔｔｒｉｂｕｔｅｓＥｘなどによって取得することができる。ＧｅｔＦｉｌｅＡｔｔｒｉｂｕｔｅｓは、指定されたファイル又はディレクトリに、ファイルシステム内におけるその属性を返すために使用され、ＧｅｔＦｉｌｅＡｔｔｒｉｂｕｔｅｓＥｘは、更に多くの属性を返すことができる。当然、ディレクトリ属性を取得するための手段は任意の既存の手段でよく、上述した例に限定されない。
【００２１】
ステップ１０４：取得されたディレクトリ属性に従って、トラバースされるディレクトリが再マッピングされたディレクトリであるかどうか判断され、再マッピングされたディレクトリでないと判定された場合には、ステップ１０６が実行され、再マッピングされたディレクトリである場合には、ステップ１０６は実行されない。
【００２２】
当業者は、例えば、ディレクトリＢがディレクトリＡに再マッピングされると、その結果、ディレクトリＡが開かれるときにディレクトリＢのコンテンツを見ることができるようになる、すなわちディレクトリＡとディレクトリＢが同じコンテンツを有するようになることを理解されよう。ここでのディレクトリＡは、再マッピングされたディレクトリであり、ディレクトリＡのディレクトリ属性は、ＦＩＬＥ＿ＡＴＴＲＩＢＵＴＥ＿ＲＥＰＡＲＳＥ＿ＰＯＩＮＴ属性フラグを含み得る。
【００２３】
任意選択的に、本発明の別の実装形態では、取得されたディレクトリ属性にＦＩＬＥ＿ＡＴＴＲＩＢＵＴＥ＿ＲＥＰＡＲＳＥ＿ＰＯＩＮＴ属性フラグが含まれているかどうかに従って、トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定し、その属性フラグが含まれている場合には、トラバースされるディレクトリは再マッピングされたディレクトリであり、含まれていない場合には、再マッピングされたディレクトリではない。
【００２４】
更に、任意選択的に、取得されたディレクトリ属性がＦＩＬＥ＿ＡＴＴＲＩＢＵＴＥ＿ＲＥＰＡＲＳＥ＿ＰＯＩＮＴ属性フラグを含むかどうか判定するために、演算に適した既存の計算方法を使用することができる。
【００２５】
ステップ１０６：トラバースされるディレクトリに対してスキャン処理が行われる。
【００２６】
スキャン処理は、トラバースされるディレクトリ内の様々なファイルをスキャンしてスキャン結果を取得するステップ、及び／又はトラバースされるディレクトリ内の様々なサブディレクトリに対して第２の処理を行うステップを含む。トラバースされるディレクトリ内の様々なサブディレクトリに対して第２の処理を行うステップは、様々なサブディレクトリをトラバースし、トラバースされるサブディレクトリに対して第１の処理と同じ処理を行うステップを含む。
【００２７】
この実施形態では、より具体的には、トラバースされるディレクトリにファイルが含まれている場合には、含まれているファイルがスキャンされて、スキャン結果が取得され、トラバースされるディレクトリにサブディレクトリが含まれている場合には、含まれているサブディレクトリに対して第２の処理が行われ、トラバースされるディレクトリにファイルとサブディレクトリとの両方が含まれている場合には、上述した処理が同時に行われる。
【００２８】
例えば、「ユーザ」ディレクトリ（これは再マッピングされていないディレクトリである）に、「デフォルト」サブディレクトリと「デフォルトユーザ」サブディレクトリが含まれるとする（説明の都合上、ここでは、これら２つのサブディレクトリのみを有するものとして説明するが、当然、実際の状況では、「ユーザ」ディレクトリは他のサブディレクトリも含むことがある）。「ユーザ」ディレクトリに対するスキャン処理を行うために本発明の実施形態で提供される方法を使用するとき、「デフォルト」サブディレクトリ及び「デフォルトユーザ」サブディレクトリに対して連続してトラバースが行われる。「デフォルト」サブディレクトリへのトラバース時、「デフォルト」サブディレクトリに対して第１の処理が行われ、第１の処理は、「デフォルト」サブディレクトリのディレクトリ属性を取得するステップと、そのディレクトリ属性がＦＩＬＥ＿ＡＴＴＲＩＢＵＴＥ＿ＲＥＰＡＲＳＥ＿ＰＯＩＮＴ属性フラグを含まないことを認識し、次いで「デフォルト」サブディレクトリに対してスキャン処理を行うステップを含む。
【００２９】
「デフォルト」サブディレクトリに対するスキャン処理は、「デフォルト」サブディレクトリ内のファイルをスキャンしてスキャン結果を取得するステップ、及び／又は「デフォルト」サブディレクトリ内のディレクトリに対して第２の処理を行うステップを含み、このときの第２の処理は、「デフォルト」サブディレクトリ内の様々なディレクトリをトラバースし、トラバースされるディレクトリに対して第１の処理と同じ処理を行うステップを含み、以下同様である。「デフォルト」サブディレクトリ内のファイル、及び「デフォルト」サブディレクトリ内の様々なレベルの再マッピングされていないディレクトリ内のファイルに対してスキャンが行われた後、「デフォルト」サブディレクトリに対するスキャン処理が完了となる。
【００３０】
「デフォルト」サブディレクトリに対するスキャン処理が完了された後、「デフォルトユーザ」サブディレクトリがトラバースされ、そのディレクトリ属性を取得することによって、ＦＩＬＥ＿ＡＴＴＲＩＢＵＴＥ＿ＲＥＰＡＲＳＥ＿ＰＯＩＮＴ属性フラグがディレクトリ属性に含まれていることが分かった場合には、「デフォルトユーザ」サブディレクトリに対するスキャン処理が行われない。
【００３１】
この時点までに、「ユーザ」ディレクトリ内のファイル（この例では、「ユーザ」ディレクトリ内のファイルは空である）、及び「ユーザ」ディレクトリ内の様々なレベルの再マッピングされていないディレクトリ内のファイルのスキャンが完了し、すなわち、「ユーザ」ディレクトリに対するスキャン処理が完了される。
【００３２】
本発明の実施形態で提供されるファイルをスキャンするための方法を使用することによって、ディレクトリのディレクトリ属性に従って、トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定することができ、トラバースされるディレクトリが再マッピングされたディレクトリでない場合にのみ、ディレクトリに対してスキャン処理が行われ、したがって、再マッピング関係を有するディレクトリに対してはスキャン処理が繰返し行われず、これは、スキャン中のＩＯオーバーヘッド及びＣＰＵオーバーヘッドを効果的に減少させ、ファイルスキャン効率を改良する。
【００３３】
任意選択的に、この実施形態の一実装形態では、トラバースされるディレクトリが再マッピングされたディレクトリであることが特定された後に、又はトラバースされるディレクトリに対するスキャン処理が完了された後に、次のディレクトリがトラバースされる。その後、次のディレクトリに対して第１の処理が行われる。
【００３４】
図２Ａは、本発明の一実施形態によるファイルをスキャンするための装置のブロック図であり、図２Ａを参照すると、ファイルをスキャンするための装置２は、ディレクトリトラバースユニット２１と、第１の処理ユニット２２と、第２の処理ユニット２３とを備え、以下、これらをそれぞれ説明する。
【００３５】
ディレクトリトラバースユニット２１は、ディレクトリをトラバースするために使用される。例えば、トラバースは、特定のパスでディレクトリに対して行われる。
【００３６】
第１の処理ユニット２２は、ディレクトリトラバースユニット２１によってトラバースされるディレクトリに対して第１の処理を行うために使用される。第１の処理は、トラバースされるディレクトリのディレクトリ属性を取得するステップと、取得されたディレクトリ属性に従って、トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定し、再マッピングされたディレクトリである場合には、トラバースされるディレクトリに対してスキャン処理を行わず、再マッピングされたディレクトリでない場合には、トラバースされるディレクトリに対してスキャン処理を行うステップとを含む。スキャン処理は、トラバースされるディレクトリ内の様々なファイルをスキャンしてスキャン結果を取得するステップ、及び／又は第２の処理ユニット２３を呼び出して、トラバースされるディレクトリ内の様々なサブディレクトリに対する処理を行うステップを含む。
【００３７】
第２の処理ユニット２３は、トラバースされるディレクトリ内の様々なサブディレクトリをトラバースし、トラバースされるサブディレクトリに対して第１の処理と同じ処理を行うために使用される。
【００３８】
この実施形態では、第１の処理ユニット２２は、トラバースされるディレクトリ内の様々なファイル、及びトラバースされるディレクトリ内の様々なレベルの再マッピングされていないディレクトリ内のファイルに対するスキャンを完了した後、トラバースされるディレクトリに対する処理スキャンを完了する。
【００３９】
任意選択的に、この実施形態の一実装形態では、図２Ｂに破線のボックスで示されるように、第１の処理ユニット２２は、トラバースされるディレクトリのディレクトリ属性を取得する（例えば、Ｍｉｃｒｏｓｏｆｔ  「Ｗｉｎｄｏｗｓ」オペレーティングシステムのアプリケーションプログラムインターフェースを介して取得する）ためのディレクトリ属性取得モジュール２２１を備えることがある。
【００４０】
任意選択的に、この実施形態の一実装形態では、図２Ｂに破線のボックスで示されるように、第１の処理ユニット２２は、第１の処理ユニット２２によって取得されたディレクトリ属性に従って、トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定するための特定モジュール２２２を備えることができる。例えば、ＦＩＬＥ＿ＡＴＴＲＩＢＵＴＥ＿ＲＥＰＡＲＳＥ＿ＰＯＩＮＴ属性フラグがディレクトリ属性に含まれているかどうかに基づいて、トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定し、その属性フラグが含まれている場合には、トラバースされるディレクトリは再マッピングされたディレクトリであり、含まれていない場合には、トラバースされるディレクトリは再マッピングされたディレクトリではない。
【００４１】
第２の処理ユニット２３に関して、各サブディレクトリをトラバースするとき、トラバースされるサブディレクトリについて、サブディレクトリのディレクトリ属性が取得され、そのサブディレクトリが再マッピングされたディレクトリであるかどうか判定され、再マッピングされたディレクトリである場合には、そのサブディレクトリに対してスキャン処理は行われず、再マッピングされたディレクトリでない場合には、スキャン処理が行われる。ここでのスキャン処理は、サブディレクトリ内のファイルをスキャンしてスキャン結果を取得するステップ、及び／又は第２の処理ユニット２３を呼び出して、サブディレクトリ内のディレクトリをトラバースし、トラバースされるディレクトリに対して第１の処理と同じ処理を行うステップを含み、以下同様であり、最終的には、サブディレクトリ内のファイル、及びサブディレクトリ内の様々なレベルの再マッピングされていないディレクトリ内のファイルのスキャンが完了される。
【００４２】
本発明の実施形態で提供されるファイルをスキャンするための装置２を使用して、ディレクトリのディレクトリ属性に従って、トラバースされるディレクトリが再マッピングされたディレクトリであるかどうかを特定することができ、トラバースされるディレクトリが再マッピングされたディレクトリでない場合にのみ、ディレクトリに対してスキャン処理が行われ、したがって、スキャン処理は、ファイルをスキャンするための装置２によって、再マッピング関係を有するディレクトリに対して繰返し行われず、これは、スキャン中のＩＯオーバーヘッド及びＣＰＵオーバーヘッドを効果的に減少させ、ファイルスキャン効率を改良する。
【００４３】
任意選択的に、この実施形態の一実装形態では、ディレクトリトラバースユニット２１が更に使用されて、トラバースされるディレクトリが再マッピングされたディレクトリであることを第１の処理ユニット２２が特定した後に、又はトラバースされるディレクトリに対するスキャン処理を第１の処理ユニット２２が完了した後に、次のディレクトリをトラバースする。
【００４４】
本発明の方法実施形態で定義される条件、処理方法、及び論理的関係などは、本明細書では説明しないが、本発明の装置実施形態にも同様に適用可能である。
【００４５】
前述の実施形態の説明により、当業者は、ソフトウェア及びハードウェアと組み合わせたプラットフォームによって本発明を実施することができることを明瞭に理解することができる。この理解に基づいて、背景技術に対する寄与を有する本発明の技術的解決策の幾つか又は全てを、ソフトウェア製品の形態で具現化することができ、コンピュータソフトウェア製品は、ＲＯＭ／ＲＡＭなどの記憶媒体、磁気ディスク、又は光ディスクなどに記憶することができ、様々な命令を含み、それらの命令により、コンピュータデバイス（パーソナルコンピュータ、サーバ、スマートフォン、ネットワークデバイスなどでよい）が、本発明の様々な実施形態の方法又は様々な実施形態の特定の部分を実行する。
【００４６】
本発明の説明で使用される用語及び語句は例示のためのものにすぎず、限定を成すことは意図されていない。当業者は、開示される実施形態の基本原理から逸脱することなく、上述した実施形態の詳細に様々な変更を加えることができることを理解されよう。したがって、本発明の範囲は、特許請求の範囲によってのみ決定され、特許請求の範囲において、特に断りのない限り、全ての用語が、最も広範であり最も適当な意味合いに従って理解されるものとする。
【符号の説明】
【００４７】
２  ファイルをスキャンするための装置
２１  ディレクトリトラバースユニット
２２  第１の処理ユニット
２３  第２の処理ユニット
２２１  ディレクトリ属性取得モジュール
２２２  特定モジュール
【図１】
2016045929.tif 000003
【図２Ａ】
2016045929.tif 000004
【図２Ｂ】
2016045929.tif 000005
【外国語明細書】
2016045929000001.pdf