(57)【要約】【課題】ファイルやフォルダに対する操作の情報が得られない監視対象のファイルシステムで行われたフォルダの移動や名前の変更を検出する処理を行う。【解決手段】検出部１３は、管理情報取得部１１がファイルシステム２から取得した現在の管理情報と、管理情報記憶部１２が記憶している前回の管理情報とを比較し、追加・更新・削除イベントを検出する。追加及び削除イベントが検出されたフォルダについて、変更部１４は移動あるいは名前の変更が行われたフォルダを抽出して、それらのフォルダのイベントを移動に変更する。これによって、ファイル処理部３による追加されたファイルに対する処理が抑制される。【選択図】図１
2008097149.tif 000002
【特許請求の範囲】
【請求項１】
複数のフォルダをツリー構造で階層的に管理するファイルシステムから該ファイルシステムの前記ツリー構造についての情報を含む現在の管理情報を取得する管理情報取得処理と、
前記ファイルシステムの前記ツリー構造についての情報を含む過去の管理情報を管理情報記憶手段に記憶する管理情報記憶処理と、
前記管理情報取得処理で取得した現在の管理情報と前記管理情報記憶手段に記憶されている過去の管理情報とを比較して、前記ファイルシステムのフォルダの追加及び削除のイベントを検出する検出処理と、
前記検出手段で追加のイベントが検出されたフォルダと削除のイベントが検出されたフォルダのうち、前記管理情報取得処理で取得した現在の管理情報中の前記フォルダに関する部分的な前記ツリー構造についての管理情報と前記管理情報記憶手段に記憶されている過去の管理情報中の前記フォルダに関する部分的な前記ツリー構造についての管理情報とが一致するフォルダについてのイベントを移動のイベントに変更する変更処理
をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項２】
前記変更処理において、イベントの変更を行う対象となったフォルダの下位の階層に含まれるフォルダ及びファイルの数が所定数より少ない場合には前記イベントの変更は行わないことを特徴とする請求項１に記載の情報処理プログラム。
【請求項３】
複数のフォルダをツリー構造で階層的に管理するファイルシステムから該ファイルシステムの前記ツリー構造についての情報を含む現在の管理情報を取得する管理情報取得手段と、
前記ファイルシステムの前記ツリー構造についての情報を含む過去の管理情報を記憶する管理情報記憶手段と、
前記管理情報取得手段で取得した現在の管理情報と前記管理情報記憶手段に記憶されている過去の管理情報とを比較して、前記ファイルシステムのフォルダの追加及び削除のイベントを検出する検出手段と、
前記検出手段で追加のイベントが検出されたフォルダと削除のイベントが検出されたフォルダのうち、前記管理情報取得手段で取得した現在の管理情報中の前記フォルダに関する部分的な前記ツリー構造についての管理情報と前記管理情報記憶手段に記憶されている過去の管理情報中の前記フォルダに関する部分的な前記ツリー構造についての管理情報とが一致するフォルダについてのイベントを移動に変更する変更手段
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム及び情報処理装置に関するものである。
【背景技術】
【０００２】
一般にコンピュータにおいてはファイルシステムがデータをファイルとして管理しており、そのファイルシステムが管理している各ファイルと連動し、様々な処理が行われている。例えば、ファイル検索やファイルの内容の高速な検索あるいは的確な検索を行うために、ファイルシステムとは別にインデクスを作成しておいて、そのインデクスを用いて所望のファイルを検索して特定し、特定したファイルをファイルシステムから取り出す、といった処理が行われている。このとき用いるインデクスは、例えば内容の検索を行うのであれば、ファイルシステムが管理している各ファイルの内容の解析やキーワードの抽出など、それぞれのファイルについて処理を行うことにより作成される。
【０００３】
このようにファイルシステムが管理するファイルについて、それぞれ対応した処理を行っている場合、ファイルシステムにおいてファイルが追加または変更されたときには、その追加または変更されたファイルについて、連動している処理を新規にあるいはやり直す必要がある。そのため、ファイルシステムから追加や変更を含む何らかの変動があったファイルを検出し、そのファイルについて処理を行うことになる。
【０００４】
ファイルに対する操作としては、新規追加や内容の変更だけでなく、ファイルシステム上でのファイルの移動や名前の変更などもある。これらの操作においては、ファイルの内容が変更されているわけではないため、ファイルに対する処理を行わなくてもよい場合がある。従って、ファイルに対する操作がファイルの移動や名前の変更であることがわかれば、改めてファイルに対する処理を行うことなく、簡単なファイルの移動や名前の変更への対処を行えばよい。
【０００５】
例えば特許文献１においては、２台のコンピュータ内のファイルシステムを同一に保つため、ファイルの識別子をファイル名とは別に持つとともに、ファイル毎の操作履歴を保持し、ファイル識別子とその操作履歴を用いることにより、ファイルの移動であるパス変更や、名前の変更を検出して、そのような場合にはファイルの転送を行わないようにしている。
【０００６】
上述のように、ファイルに対する操作が得られるファイルシステムであれば、その操作を監視し、行われた操作に対応した処理を行えばよい。しかし、ファイルシステムによっては、ファイルに対して行われた操作の情報が得られず、現在の状態から行われた操作を推測するしかない場合も多い。このような場合には、監視対象のファイルシステムにおける過去の状態と現在の状態とを比較し、異なっているファイルについて、削除あるいは追加として検出している。例えばファイルの移動が行われた場合には、過去に存在していた位置からのファイルの削除と、移動先でのファイルの追加として検出している。また、名前の変更についても、変更前の名前のファイルの削除と、変更後の名前のファイルの追加として検出している。そのため、ファイルの移動や名前の変更を行った時には、内容が変更されていなくても、当該ファイルについて対応する処理を行っていた。
【０００７】
特にファイルシステムがツリー構造でファイルを管理している場合、ツリー構造のノードに対応する、いわゆるフォルダを設けることができるが、このフォルダについても移動や名前の変更が行われる。このようなフォルダにおける移動や名前の変更が行われると、その配下の多くのフォルダやファイルについて追加及び削除が検出され、追加として検出された多くのファイルについて再処理を行う必要が生じていた。
【０００８】
【特許文献１】特開平１０−０６３５５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、上述した事情に鑑みてなされたもので、フォルダに対する操作の情報が得られないファイルシステムを監視対象とし、そのような監視対象のファイルシステムで行われたフォルダの移動や名前の変更を検出可能とした情報処理プログラム及び情報処理装置を提供することを目的とするものである。
【課題を解決するための手段】
【００１０】
本願請求項１に記載の発明は、
複数のフォルダをツリー構造で階層的に管理するファイルシステムから該ファイルシステムの前記ツリー構造についての情報を含む現在の管理情報を取得する管理情報取得処理と、
前記ファイルシステムの前記ツリー構造についての情報を含む過去の管理情報を前記管理情報記憶手段に記憶する管理情報記憶処理と、
前記管理情報取得処理で取得した現在の管理情報と前記管理情報記憶手段に記憶されている過去の管理情報とを比較して、前記ファイルシステムのフォルダの追加及び削除のイベントを検出する検出処理と、
前記検出手段で追加のイベントが検出されたフォルダと削除のイベントが検出されたフォルダのうち、前記管理情報取得処理で取得した現在の管理情報中の前記フォルダに関する部分的な前記ツリー構造についての管理情報と前記管理情報記憶手段に記憶されている過去の管理情報中の前記フォルダに関する部分的な前記ツリー構造についての管理情報とが一致するフォルダについてのイベントを移動のイベントに変更する変更処理
をコンピュータに実行させることを特徴とする情報処理プログラム
である。
【００１１】
また本願請求項２に記載の発明は、本願請求項１に記載の構成における変更処理において、イベントの変更を行う対象となったフォルダの下位の階層に含まれるフォルダ及びファイルの数が所定数より少ない場合には前記イベントの変更は行わないことを特徴とする情報処理プログラムである。
【００１２】
さらに本願請求項３に記載の発明は、
複数のフォルダをツリー構造で階層的に管理するファイルシステムから該ファイルシステムの前記ツリー構造についての情報を含む現在の管理情報を取得する管理情報取得手段と、
前記ファイルシステムの前記ツリー構造についての情報を含む過去の管理情報を記憶する管理情報記憶手段と、
前記管理情報取得手段で取得した現在の管理情報と前記管理情報記憶手段に記憶されている過去の管理情報とを比較して、前記ファイルシステムのフォルダの追加及び削除のイベントを検出する検出手段と、
前記検出手段で追加のイベントが検出されたフォルダと削除のイベントが検出されたフォルダのうち、前記管理情報取得手段で取得した現在の管理情報中の前記フォルダに関する部分的な前記ツリー構造についての管理情報と前記管理情報記憶手段に記憶されている過去の管理情報中の前記フォルダに関する部分的な前記ツリー構造についての管理情報とが一致するフォルダについてのイベントを移動に変更する変更手段
を有することを特徴とする情報処理装置
である。
【発明の効果】
【００１３】
本願請求項１に記載の発明によれば、フォルダに対する操作の情報が得られない多くのファイルシステムを監視対象とすることができ、そのような場合であっても、フォルダの移動または名前の変更を移動のイベントとして検出することができる。例えばファイルシステム内のフォルダについて処理を行う場合に、移動や名前が変更されたフォルダについての処理を省略することが可能となり、無駄な処理を低減することができる。
【００１４】
本願請求項２に記載の発明によれば、追加のイベントにより処理対象となるフォルダが少ない場合には変更処理を省略することができ、オーバヘッドを低減することができる。
【００１５】
本願請求項３に記載の発明によれば、本願請求項１に記載の発明と同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００１６】
図１は、本発明の実施の一形態を示すブロック図である。図中、１はイベント検出部、２はファイルシステム、３はファイル処理部、１１は管理情報取得部、１２は管理情報記憶部、１３は検出部、１４は変更部である。ファイルシステム２は本発明のイベント検出部１による監視対象のファイルシステムである。このファイルシステム２は、ノードとしてフォルダを有するツリー構造によりファイルを管理している。そしてファイルやフォルダの追加、削除、移動（パス変更）、内容の更新などを行うことができる。またファイルシステム２は、要求に応じてファイルやフォルダの一般的な管理情報を提供する。例えばファイルやフォルダのパスを含む名前、作成日時、最終更新日時などの基本的な情報を少なくとも提供する。
【００１７】
イベント検出部１は、ファイルシステム２におけるファイルやフォルダの状況を監視し、何らかの変更があったファイルやフォルダについて、ファイル処理部３に通知する。より具体的には、ファイルシステム２に対してファイル及びフォルダの管理情報を要求して取得し、その管理情報からファイル及びフォルダが追加・更新・削除・移動されたことを、それぞれ追加・更新・削除・移動のイベントとして検出してファイル処理部３へ渡す。
【００１８】
この例では、イベント検出部１は管理情報取得部１１、管理情報記憶部１２、検出部１３、変更部１４などを含んで構成されている。管理情報取得部１１は、ファイルシステム２に対してファイル及びフォルダの管理情報を要求して取得する。管理情報記憶部１２は、管理情報取得部１１で取得した管理情報を記憶するものであり、管理情報取得部１１で管理情報を新たに取得したときに少なくとも前回取得した管理情報については記憶している。もちろん、管理情報取得部１１が新たに取得した管理情報についても、次回に利用するために記憶することになる。
【００１９】
検出部１３は、管理情報取得部１１で取得した管理情報と、管理情報記憶部１２に記憶されている過去の管理情報（例えば前回取得した管理情報）を比較し、ファイル及びフォルダの追加・更新・削除のイベントを検出する。例えば管理情報中のパスを含む名前が同じで最終更新日時が異なるファイルについては、更新イベントとして検出することができる。また、現在の管理情報に存在するが過去の管理情報に同一の名前が存在しないフォルダ及びファイルについては追加イベントとして検出することができる。逆に過去の管理情報に存在するが現在の管理情報に同一の名前が存在しないフォルダ及びファイルについては削除イベントとして検出することができる。
【００２０】
変更部１４は、検出部１３で追加イベント及び削除イベントが検出されたフォルダ及びファイルについて、サブツリーの管理情報が一致するフォルダについて移動イベントに変更する。このとき、サブツリー内のフォルダ及びファイルの数が所定数より少ない場合には、イベントの変更の処理を行わないように構成することができる。なお、所定数は任意であり、固定値を用いるほか、ユーザが設定したり、あるいはファイルシステムの状況やファイル処理部３の処理などに応じて自動的に設定することもできる。
【００２１】
図２は、本発明の実施の一形態における動作の概要を示すフローチャートである。定期的に、あるいはユーザからの指示、またはファイルシステム２へのユーザの操作を検知するなどの何らかのタイミングにおいて、イベント検出部１が動作を開始し、図２に示す処理が行われる。
【００２２】
イベント検出部１は、まずＳ２１において、管理情報取得部１１がファイルシステム２に対して管理情報を要求し、ファイルシステム２が管理しているファイル及びフォルダの現在の管理情報を取得する。なお、前回のイベント検出部１の動作時に管理情報取得部１１が取得した管理情報が管理情報記憶部１２に記憶されている。
【００２３】
管理情報取得部１１がファイルシステム２から現在の管理情報を取得すると、Ｓ２２において、検出部１３は、管理情報取得部が取得した現在の管理情報と、管理情報記憶部１２が記憶している前回の管理情報とを比較し、管理情報が相違するファイル及びフォルダを抽出して、それらのファイル及びフォルダについて追加・更新・削除のいずれのイベントであるかを判断する。この判断は、上述のように管理情報中のパスを含む名前が同じで最終更新日時が異なるファイルについては、更新イベントとして検出する。また、現在の管理情報に存在するが過去の管理情報に同一の名前（パスを含む）が存在しないフォルダ及びファイルについては追加イベントとして検出する。逆に過去の管理情報は存在するが現在の管理情報に同一の名前（パスを含む）が存在しないフォルダ及びファイルについては削除イベントとして検出する。
【００２４】
検出部１３で各イベントを検出したら、Ｓ２３において、変更部１４は検出部１３で追加イベント及び削除イベントを検出したファイル及びフォルダの中から、移動あるいは名前の変更が行われたファイル及びフォルダを抽出して、それらのファイルやフォルダのイベントを移動イベントに変更する。この処理については後述する。
【００２５】
変更部１４で適宜、イベントを変更したファイルやフォルダについて、Ｓ２４において、イベントの発生をファイル処理部３へ出力する。ファイル処理部３において行われる処理は任意であるが、例えば削除イベントのファイルに関する情報を削除し、追加イベント及び更新イベントのファイルについては新たに処理を施す。また、移動イベントに変更されたファイルやフォルダについては、移動の処理を行うだけでファイルに対する新たな処理を行わないようにすることができ、ファイル処理部３における処理負荷が軽減される。
【００２６】
図３は、変更部１４における処理の一例を示すフローチャートである。Ｓ３１において、検出部１３で検出されたイベントが削除イベントのファイル及びフォルダの集合Ｄ＝｛ｄ１，・・・，ｄｍ｝と、追加イベントのファイル及びフォルダの集合Ａ＝｛ａ１，・・・，ａｎ｝を作成する。なお、後述するＳ３３で用いる所定数が１以上の場合には、ファイルについてはＳ３３で削除されることが分かっているので、Ｓ３１，Ｓ３２で集合を作成する際にファイルを含めずにフォルダのみを処理対象としてもよい。以下の説明ではフォルダのみを処理対象とする。なお、Ｓ３３の処理を行わない場合、あるいは所定数を０とする可能性がある場合には、ファイルについても集合に含めるようにすればよい。
【００２７】
Ｓ３２において、集合Ｄの各要素と集合Ａの各要素であるフォルダについて、そのフォルダを頂点とするサブツリー内のフォルダ及びファイルの数を算出する。ここで、サブツリーの頂点となるフォルダをｆとするとき、サブツリー内のフォルダ及びファイルの数をｄＮ（ｆ）とする。なお、集合Ｄ，Ａにファイルを含めている場合には、ｄＮ（ｆ）＝０となる。
【００２８】
Ｓ３３において、Ｓ３２で算出した数と予め設定されている所定数とを比較し、所定数以上の要素のみを各集合に残す。これは、ファイルの数が少なければ、以下のイベントを変更する処理を行うよりも、ファイル追加及び削除時の処理を行ってしまった方が効率的であることによる。なお、Ｓ３３における処理を行わないでイベント変更の処理を進めることもできる。
【００２９】
Ｓ３４において、Ｓ３３で残った要素が集合Ｄ及び集合Ａに存在しているか否か、すなわち集合Ｄか集合Ａの少なくともいずれかが空か否かを判断する。集合Ｄか集合Ａのいずれかが空であれば、移動あるいは名前の変更があった、所定数以上のサブツリーの要素を有するフォルダが存在しないものとして、変更部１４の処理を終える。
【００３０】
Ｓ３４で集合Ｄ及び集合Ａが空でない場合には、Ｓ３５において、集合Ｄの要素（フォルダ）を頂点とするサブツリーの構造と、集合Ａの要素（フォルダ）を頂点とするサブツリーの構造が一致する組み合わせをすべて求め、この組をパス変更候補集合Ｐとする。Ｓ３６において、パス変更候補集合Ｐが空か否かを判定し、空であれば変更部１４の処理を終了する。
【００３１】
Ｓ３６の判定でパス変更候補集合Ｐの要素が存在していれば、Ｓ３７において、不要な組をパス変更候補集合Ｐから削除する。この処理として、同じ集合Ａの要素あるいは同じ集合Ｄの要素を含む組がパス変更候補集合Ｐに複数含まれている場合には、それらの組をパス変更候補集合Ｐから削除する。例えば集合Ｄに含まれるフォルダｄと集合Ａに含まれる複数のフォルダａ１，ａ２との組（ｄ，ａ１）、（ｄ，ａ２）がパス変更候補集合Ｐに存在する場合、この２つの組ともパス変更候補集合Ｐから削除する。これは、ファイルシステム２内に類似する構造のサブツリーが存在している場合（例えばサブツリーごとコピーした構造を有している場合など）に生じ、これらは移動や名前の変更とは異なるため、ここで削除している。
【００３２】
このようにしてパス変更候補集合Ｐに残った集合Ｄの要素（削除イベントのフォルダ）と集合Ａの要素（追加イベントのフォルダ）の組について、名前が同じ組についてはＳ３８において移動イベントに変更し、名前が異なる組についてはＳ３９において名前の変更イベントに変更する。
【００３３】
このようにして、フォルダが移動されたり名前が変更されたことにより削除イベントと追加イベントとして検出された場合でも、変更部１４により移動イベントまたは名前の変更イベントに変更される。そのため、検出結果を用いてファイルに対する処理を行う場合でも、無駄な処理を低減することができる。
【００３４】
なお、上下関係にあるフォルダにおいて、上位のフォルダが移動または名前の変更された場合、上位のフォルダについて移動イベントあるいは名前の変更イベントに変更されるが、下位のフォルダについても移動イベントに変更される。実際には上位のフォルダの移動又は名前の変更であるが、下位のフォルダについて移動イベントとなっても、ファイルに対する処理を抑制することができるので問題はない。
【００３５】
上述の動作の一例について、具体例を用いて説明する。図４は、ファイルシステム２に保持されているファイル及びフォルダの一例の説明図、図５は、同じく管理情報の一例の説明図である。ここでは監視対象のファイルシステム２の内容の具体例として、図４に示すような木構造にファイル及びフォルダが配置されているものとする。すなわち、ルート「Ｄ：」の下層にフォルダ「ｄａｔａ」が配置され、その下層にフォルダ「ｆ１」と「ｆ２」が配置されている。またフォルダ「ｆ１」の下層にはフォルダ「ｆ１−１」とファイル「ｄ１−１」が配置され、フォルダ「ｆ１−１」の下層にはフォルダ「ｆ１−１−１」、フォルダ「ｆ１−１−２」及びファイル「ｄ１−１−１」が配置され、さらに、フォルダ「ｆ１−１−１」の下層にはファイル「ｄ１−１−１−１」が、またフォルダ「ｆ１−１−２」の下層にはファイル「ｄ１−１−２−１」がそれぞれ配置されている。また、フォルダ「ｆ２」の下層にはフォルダ「ｆ２−１」が配置され、さらにその下層にはファイル「ｄ２−１−１」が配置されている。
【００３６】
このようなファイルシステム２から、管理情報として図５に示す情報が得られているとする。この例では、管理情報として各フォルダ及びファイルへのパスと名前、作成日時、最終更新日時が得られている例を示している。もちろん、このほかの種々の情報が得られていてもよいことは言うまでもない。以下の説明では、図５に示す管理情報が管理情報取得部１１で取得され、管理情報記憶部１２に記憶されているものとする。
【００３７】
図６は、フォルダの移動の具体例の説明図、図７は、移動後の管理情報の一例の説明図である。図４と比較してわかるように、図６に示した例では、フォルダ「ｆ１−１」をフォルダ「ｆ１」の下層からフォルダ「ｆ２」の下層へ移動した例を示している。このようにフォルダ「ｆ１−１」が移動された後、管理情報取得部１１がファイルシステム２から管理情報を取得すると、図７に示すような内容の管理情報が取得できる。
【００３８】
図５と比較すると、図７の左端に矢印を付したフォルダ及びファイルの管理情報が変更されている。検出部１３では、管理情報記憶部１２に記憶されている図５に示した管理情報と、新たに管理情報取得部１１で取得した図７に示した管理情報とを比較し、両方に全く同じ情報が存在しているフォルダ及びファイルは変更無いものとし、また最終更新日時のみが異なるフォルダ及びファイルについては更新イベントが発生したものとして検出する。そのほかのフォルダ及びファイルについては、図５に示した管理情報に存在するフォルダ及びファイルは削除イベント、図７に示した管理情報に存在するフォルダ及びファイルは追加イベントが発生したものとして検出する。この例では、名前が「ｆ１−１」、「ｆ１−１−１」、「ｆ１−１−２」、「ｄ１−１−１」、「ｄ１−１−１−１」、「ｄ１−１−２−１」のフォルダ及びファイルについて、パスが一致するものがないので、図５から削除イベントが検出され、図７から追加イベントが検出される。
【００３９】
このようにして検出部１３で各イベントが検出されたら、図３に示した変更部１４における処理が開始される。まず、削除イベントが検出されたフォルダを集合Ｄ、追加イベントが検出されたフォルダを集合Ａとする。具体的には、Ｄ＝｛ｆ１−１，ｆ１−１−１，ｆ１−１−２｝、Ａ＝｛ｆ１−１，ｆ１−１−１，ｆ１−１−２｝となる。なお、ここではサブツリー内のファイル及びフォルダ数を判定する際の所定数を４とする。従って、集合Ｄ，Ａを作成する際にファイルを含めていない。
【００４０】
集合Ｄの各要素のサブツリー内のファイル及びフォルダ数を求めると、ｄＮ（ｆ１−１）＝５，ｄＮ（ｆ１−１−１）＝１，ｄＮ（ｆ１−１−２）＝１である。また、集合Ａの各要素のサブツリー内のファイル及びフォルダ数を求めると、ｄＮ（ｆ１−１）＝５，ｄＮ（ｆ１−１−１）＝１，ｄＮ（ｆ１−１−２）＝１である。集合Ｄ，Ａのそれぞれについて所定数４以上の要素を残すと、Ｄ＝｛ｆ１−１｝、Ａ＝｛ｆ１−１｝となる。
【００４１】
集合Ｄの要素であるフォルダｆ１−１を頂点とするサブツリーの構造と、集合Ａの要素であるフォルダｆ１−１を頂点とするサブツリーの構造を比較すると、一致する。この組をパス変更候補集合Ｐに追加する。これにより、Ｐ＝｛（ｆ１−１，ｆ１−１）｝となる。このパス変更候補集合Ｐには削除対象の組はなく、（ｆ１−１，ｆ１−１）の組は名前が同じであるので、フォルダ「ｆ１−１」の削除イベント及び追加イベントを、移動イベントに変更する。このようにして、図５，図７に示したような管理情報しかファイルシステム２から得られない場合でも、削除イベント及び追加イベントを検出したフォルダについて、移動イベントとして検出して変更することができた。
【００４２】
図８は、フォルダの名前の変更の具体例の説明図、図９は、名前変更後の管理情報の一例の説明図である。図４と比較してわかるように、図８に示した例では、フォルダ「ｆ１」の名前をフォルダ「ｆ３」に変更した例を示している。このようにフォルダ「ｆ１」の名前がフォルダ「ｆ３」に変更された後、管理情報取得部１１がファイルシステム２から管理情報を取得すると、図９に示すような内容の管理情報が取得できる。
【００４３】
図５と比較すると、図９の左端に矢印を付したフォルダ及びファイルの管理情報が変更されている。検出部１３では、管理情報記憶部１２に記憶されている図５に示した管理情報と、新たに管理情報取得部１１で取得した図９に示した管理情報とを比較し、上述の移動の場合と同様に各イベントを検出する。この例では、図５に存在する名前が「ｆ１」、「ｆ１−１」、「ｄ１−１」、「ｆ１−１−１」、「ｆ１−１−２」、「ｄ１−１−１」、「ｄ１−１−１−１」、「ｄ１−１−２−１」のフォルダ及びファイルについて、図９にパスが一致するものがないことから削除イベントが検出される。また図９に存在する名前が「ｆ３」、「ｆ１−１」、「ｄ１−１」、「ｆ１−１−１」、「ｆ１−１−２」、「ｄ１−１−１」、「ｄ１−１−１−１」、「ｄ１−１−２−１」のフォルダ及びファイルについて、図５にパスが一致するものがないことから追加イベントが検出される。
【００４４】
このようにして検出部１３で各イベントが検出されたら、図３に示した変更部１４における処理が開始される。まず、削除イベントが検出されたフォルダを集合Ｄ、追加イベントが検出されたフォルダを集合Ａとする。具体的には、Ｄ＝｛ｆ１，ｆ１−１，ｆ１−１−１，ｆ１−１−２｝、Ａ＝｛ｆ３，ｆ１−１，ｆ１−１−１，ｆ１−１−２｝となる。なお、ここではサブツリー内のファイル及びフォルダ数を判定する際の所定数を４とする。従って、集合Ｄ，Ａを作成する際にファイルを含めていない。
【００４５】
集合Ｄの各要素のサブツリー内のファイル及びフォルダ数を求めると、ｄＮ（ｆ１）＝７，ｄＮ（ｆ１−１）＝５，ｄＮ（ｆ１−１−１）＝１，ｄＮ（ｆ１−１−２）＝１である。また、集合Ａの各要素のサブツリー内のファイル及びフォルダ数を求めると、ｄＮ（ｆ３）＝７，ｄＮ（ｆ１−１）＝５，ｄＮ（ｆ１−１−１）＝１，ｄＮ（ｆ１−１−２）＝１である。集合Ｄ，Ａのそれぞれについて所定数４以上の要素を残すと、Ｄ＝｛ｆ１，ｆ１−１｝、Ａ＝｛ｆ３，ｆ１−１｝となる。
【００４６】
集合Ｄの要素であるフォルダｆ１を頂点とするサブツリーの構造と、集合Ａの要素であるフォルダｆ３を頂点とするサブツリーの構造を比較すると、一致する。また、集合Ｄの要素であるフォルダｆ１−１を頂点とするサブツリーの構造と、集合Ａの要素であるフォルダｆ１−１を頂点とするサブツリーの構造を比較すると、この場合も一致する。これらの組をパス変更候補集合Ｐに追加する。これにより、Ｐ＝｛（ｆ１，ｆ３），（ｆ１−１，ｆ１−１）｝となる。このパス変更候補集合Ｐには削除対象の組はない。
【００４７】
パス変更候補集合Ｐの最初の組である（ｆ１，ｆ３）は名前が異なるので、フォルダ「ｆ１」の削除イベント及びフォルダ「ｆ３」の追加イベントを名前の変更イベントに変更する。また、２番目の組である（ｆ１−１，ｆ１−１）は名前が同じであるので、フォルダ「ｆ１−１」の削除イベント及び追加イベントを移動イベントに変更する。このようにして、図５，図９に示したような管理情報しかファイルシステム２から得られない場合でも、削除イベント及び追加イベントを検出したフォルダについて、名前の変更イベント及び移動イベントとして検出して変更することができた。なお、フォルダ「ｆ１−１」は移動は行われていないが、削除イベント及び追加イベントのままではファイル処理部３による処理対象となってしまうため、移動イベントに変更しておくことにより、ファイル処理部３による不要な処理が抑制される。もちろん、フォルダ「ｆ１−１」は名前が変更されたフォルダ「ｆ１」、「ｆ３」の下位に存在することから、イベントが発生していないものとして扱うように構成することも可能である。
【００４８】
図１０は、本発明の実施の一形態をコンピュータプログラムで実現した場合におけるコンピュータプログラム及びそのコンピュータプログラムを格納した記憶媒体とコンピュータの一例の説明図である。図中、４１はプログラム、４２はコンピュータ、５１は光磁気ディスク、５２は光ディスク、５３は磁気ディスク、５４はメモリ、６１はＣＰＵ、６２は内部メモリ、６３は読取部、６４はハードディスク、６５，６６はインタフェース、６７は通信部である。
【００４９】
上述の実施の一形態で説明した本発明における処理の一部または全部を、コンピュータにより実行可能なプログラム４１によって実現することが可能である。その場合、そのプログラム４１およびそのプログラムが用いるデータなどは、コンピュータが読み取り可能な記憶媒体に記憶することも可能である。記憶媒体とは、コンピュータのハードウェア資源に備えられている読取部６３あるいはインタフェース６５に対して、プログラムの記述内容に応じて、磁気、光、電気等のエネルギーの変化状態を引き起こして、それに対応する信号の形式で、読取部６３にプログラムの記述内容を伝達できるものである。例えば、光磁気ディスク５１，光ディスク５２（ＣＤやＤＶＤなどを含む）、磁気ディスク５３，メモリ５４（ＩＣカード、メモリカードなどを含む）等である。もちろんこれらの記憶媒体は、可搬型に限られるものではない。
【００５０】
これらの記憶媒体にプログラム４１を格納しておき、例えばコンピュータ４２の読取部６３あるいはインタフェース６５にこれらの記憶媒体を装着することによって、コンピュータからプログラム４１を読み出し、内部メモリ６２またはハードディスク６４に記憶し、ＣＰＵ６１によってプログラム４１を実行することによって、本発明における処理の一部または全部を実現することができる。あるいは、ネットワークなどを介してプログラム４１をコンピュータ４２に転送し、コンピュータ４２では通信部６７でプログラム４１を受信して内部メモリ６２またはハードディスク６４に記憶し、ＣＰＵ６１によってプログラム４１を実行することによって、本発明における情報処理を実現してもよい。なお、コンピュータ４２には、このほかインタフェース６６を介して様々な装置と接続することができ、例えば情報を表示する表示装置やユーザが情報を入力する入力装置等も接続されている。
【００５１】
もちろん、一部の機能についてハードウェアによって構成することもできるし、すべてをハードウェアで構成してもよい。あるいは、他の構成とともに本発明も含めたプログラムとして構成することも可能である。例えばファイル処理部３などの機能を実行するプログラムとともに１つのプログラムとして構成してもよい。もちろん、他の用途に適用する場合には、その用途におけるプログラムとの一体化も可能である。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施の一形態を示すブロック図である。
【図２】本発明の実施の一形態における動作の概要を示すフローチャートである。
【図３】変更部１４における処理の一例を示すフローチャートである。
【図４】ファイルシステム２に保持されているファイル及びフォルダの一例の説明図である。
【図５】ファイルシステム２に保持されているファイル及びフォルダの管理情報の一例の説明図である。
【図６】フォルダの移動の具体例の説明図である。
【図７】フォルダ移動後の管理情報の一例の説明図である。
【図８】フォルダの名前の変更の具体例の説明図である。
【図９】フォルダの名前変更後の管理情報の一例の説明図である。
【図１０】本発明の実施の一形態をコンピュータプログラムで実現した場合におけるコンピュータプログラム及びそのコンピュータプログラムを格納した記憶媒体とコンピュータの一例の説明図である。
【符号の説明】
【００５３】
１…イベント検出部、２…ファイルシステム、３…ファイル処理部、１１…管理情報取得部、１２…管理情報記憶部、１３…検出部、１４…変更部、４１…プログラム、４２…コンピュータ、５１…光磁気ディスク、５２…光ディスク、５３…磁気ディスク、５４…メモリ、６１…ＣＰＵ、６２…内部メモリ、６３…読取部、６４…ハードディスク、６５，６６…インタフェース、６７…通信部。
【図１】
2008097149.tif 000003
【図２】
2008097149.tif 000004
【図３】
2008097149.tif 000005
【図４】
2008097149.tif 000006
【図５】
2008097149.tif 000007
【図６】
2008097149.tif 000008
【図７】
2008097149.tif 000009
【図８】
2008097149.tif 000010
【図９】
2008097149.tif 000011
【図１０】
2008097149.tif 000012