(57)【特許請求の範囲】
【請求項１】
１つのファイル及び／又は１つのディレクトリの少なくとも１つが２つ以上のディレクトリに属することを許されたファイル管理システムであって、前記ファイル管理システムに属する任意のディレクトリ列によって定義されたワーキングディレクトリの操作対象が、前記ワーキングディレクトリを構成するディレクトリ列に含まれる全てのディレクトリを親ディレクトリに持つディレクトリ又はファイルとして定義されることを特徴とするファイル管理システム。
【請求項２】
１つのファイル及び／又は１つのディレクトリの少なくとも１つが２つ以上のディレクトリに属することを許された計算機のファイル管理システムであって、前記計算機の操作者又は前記計算機上で動作するプログラムによって指定される操作対象のファイル又はディレクトリが、そのディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つことを特徴とするファイル管理システム。
【請求項３】
請求項１記載のファイル管理システムにおいて、新たにディレクトリが作成される場合は、前記ワーキングディレクトリを構成するディレクトリ列に含まれる全てのディレクトリを親ディレクトリに持つ子ディレクトリが作成されることを特徴とするファイル管理システム。
【請求項４】
請求項２記載のファイル管理システムにおいて、新たなディレクトリが作成される場合は、その新たなディレクトリを指定するディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つ子ディレクトリが作成されることを特徴とするファイル管理システム。
【請求項５】
請求項１記載のファイル管理システムにおいて、ディレクトリが削除される場合は、前記コマンドの引数で指定されたディレクトリと、前記ワーキングディレクトリを構成するディレクトリ列に含まれる全てのディレクトリとの親子関係が解消されるが、ワーキングディレクトリを構成しないディレクトリと前記引数で指定されたディレクトリとの間に親子関係が残っているときは、そのディレクトリとの親子関係は消滅しないで維持されるようにしておくことを特徴とするファイル管理システム。
【請求項６】
請求項２記載のファイル管理システムにおいて、ディレクトリパスと削除ディレクトリとで指定されるディレクトリが削除される場合には、前記ディレクトリパスの経路上にある全てのディレクトリのそれぞれと前記削除ディレクトリとの間の親子関係が解消された後、前記削除ディレクトリが親ディレクトリを持たない場合は前記削除ディレクトリが削除され、解消後も前記ディレクトリが少なくとも１つの親ディレクトリを持つ場合には、前記削除ディレクトリが削除されないことを特徴とするファイル管理システム。
【請求項７】
ＧＵＩ（グラフィカルユーザーインターフェース）環境を備えるコンピュータシステムにおいて、一つのウインドウをワーキングディレクトリとし、そのウィンドウの中に、操作対象として選択されたファイル及びディレクトリ（フォルダ）のアイコンが表示されるような構成としたことを特徴とする請求項１記載のファイル管理システム。
【請求項８】
ＧＵＩ（グラフィカルユーザーインターフェース）環境を備えるコンピュータシステムにおいて、一つのウインドウ毎にディレクトリパスが与えられ、前記ディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つファイル及び／又はディレクトリ（フォルダ）を表すアイコンが、前記ウインドウに表示されるような構成としたことを特徴とする請求項２記載のファイル管理システム。
【請求項９】
請求項１記載のファイル管理システムにおいて、ワーキングディレクトリの操作対象となっているファイルとディレクトリとの間の親子関係の有無を判別する第１のステップと、前記第１のステップによって親子関係が有りと判断された場合はその親ディレクトリを表示対象として選択し、選択から外された子ファイルは表示対象から除外するステップとを実行させるための操作対象表示制限プログラム。
【請求項１０】
ディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つファイルと、前記ディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つディレクトリとの間の親子関係の有無を判別するステップと、前記第１のステップによって親子関係有りと判断された場合には前記親ディレクトリを表示対象として選択し、選択から外された子ファイルは表示対象から除外するステップとを実行させるための操作対象表示制限プログラム。
【請求項１１】
請求項１記載のファイル管理システムにおいて、ワーキングディレクトリの操作対象となっているファイルとディレクトリとの間の親子関係の有無を判別するステップと、親子関係が有りと判断された場合はその親ディレクトリを表示対象として選択し、選択から外された子ファイルは表示対象から除外するステップと、操作対象候補となっている子ディレクトリ間における親子関係の有無を判別するステップと、親子関係が有りと判断された場合はその親となるディレクトリのみ表示対象としてを選択し、子となるディレクトリは操作対象表示から除外するステップとを実行させるための操作対象表示制限プログラム。
【請求項１２】
ディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つファイルと、前記ディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つディレクトリとの間の親子関係の有無を判別するステップと、前記ステップにおいて親子関係有りと判断された場合には前記親ディレクトリを表示対象として選択し、選択された子ファイルは表示対象から除外するステップと、前記ディレクトリパスの経路上の全てのディレクトリを親ディレクトリに持つディレクトリとの間の親子関係の有無を判別するステップと、前記ステップにおいて親子関係有りと判断された場合にはその親ディレクトリを表示対象として選択し、子ディレクトリは表示対象から除外するステップとを実行させるための操作対象制限プログラム。
【請求項１３】
請求項９又は請求項１０記載のプログラムと、請求項１１又は請求項１２記載のプログラムとを選択的にリスト表示することができるリスト表示プログラム。
【請求項１４】
請求項１又は請求項２記載のファイル管理システムにおいて参照される、１つのファイル及び１つのディレクトリとのいずれか一つと、２つ以上のディレクトリとの間の親子関係を表すデータ構造。
【請求項１５】
請求項１又は請求項２記載のファイル管理システムにおいて参照される、１つのファイル及び１つのディレクトリとのいずれか一つと、２つ以上のディレクトリとの間の親子関係を表すデータ構造が記録されたコンピュータ読み取り可能な記録媒体。
【請求項１６】
ファイルとディレクトリとの間の親子関係情報とディレクトリとディレクトリとの間の親子関係情報と各ファイルの管理情報と、各ディレクトリの管理情報とを記憶する管理情報記憶部と、ファイルの実体データを格納するファイル記憶部と、ファイルあるいはディレクトリに対する操作命令を入力する入力部と、前記入力部から操作命令が入力されると、請求項１又は請求項２記載のファイル管理システムに従って、前記管理情報記憶部が記憶する情報及び／又は前記ファイル記憶部のファイルの実体データを読み出し又は書き込みしながら前記操作命令を実行する操作命令実行部を備えていることを特徴とする情報処理装置。
【請求項１７】
計算機やデータをファイルとして記憶し、分類整理するデータサーバやビデオサーバ、データバックアップ装置に適用された請求項１６記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーティングシステム（ＯＳ）やアプリケーションプログラムに適用できるネットワーク構造のファイル管理システム又はファイル管理方法等に関する。
【背景技術】
【０００２】
従来のファイル管理システム は、ツリー構造（木構造）によって、ファイルの分類、整理を行う。ツリー構造の末端（リーフノード）はファイルを表わし、ツリー構造の分岐点（ノード）をディレクトリ（”ディレクトリ”のことを”フォルダ”という場合もある） と呼ぶ 。
ツリー構造のファイル管理システムは、例えば図９のような、ルートディレクトリ（ツリー構造の幹、『／』と表記する。）から始まる階層構造のファイル管理システムである。ディレクトリＤは破線で、ファイルＦは実線で囲って区別している。また、ルートディレクトリからｘ階層下のｙ番目のディレクトリをＤｘｙ、ファイルはＦｘｙと表わしている。また、矢印は親子関係を表わしている。例えば、”Ｘ→Ｙ”は、Ｙから見てＸが親ディレクトリ、Ｘから見てＹは子ディレクトリ又は子ファイルであることを意味する。
ツリー構造は、ある階層における、一つのディレクトリ又は一つのファイルから見て、その１階層上には必ず一つのディレクトリ（親ディレクトリ）が存在する。
ただし、一つだけ例外があり、親ディレクトリのないディレクトリ（すなわち最上階のディレクトリ）のことを『ルートディレクトリ』と呼ぶ。
【０００３】
図８（ａ）は、簡単なツリー構造のファイル管理システムを例示したものである。ルートディレクトリ『／』の１階層下にディレクトリ『ｄｏｃ』とディレクトリ『ｂｉｎ』が存在し、ディレクトリ『ｄｏｃ』の下層にはディレクトリ『ｔｅｎｎｉｓ』と『ｇｏｌｆ』が、ディレクトリ『ｂｉｎ』の下層にはディレクトリ『ｔｅｎｎｉｓ』と『ｇｏｌｆ』が存在している。
なお、同じディレクトリ名『ｔｅｎｎｉｓ』や『ｇｏｌｆ』でも親ディレクトリが異なれば、異なるディレクトリとして扱われる。ツリー構造のファイル管理システムでは、あらゆるディレクトリ又はファイルはルートディレクトリを出発点として表記されることにより、一意に決定される。
【０００４】
このように特定のディレクトリ又はファイルを指定するための道筋（ディレクトリの列記）をディレクトリパス（単に”パス”というときもある。）という。
言い換えると、”ディレクトリパス”とは、”あるディレクトリからあるファイルやディレクトリに至るツリー構造中の各ディレクトリの名前を順次列挙したもの”と定義することができる。
例えば、図８（ａ）のツリー構造でファイル『ｒｕｌｅ』を特定するためのパスは、『／ｄｏｃ／ｔｅｎｎｉｓ／ｒｕｌｅ』となる。なお、パスの表示方法には、絶対パス（フルパス）と相対パスとがあるが、特に断らない限り、本明細書で「パス」とは絶対パス（ すなわちルートディレクトリからのディレクトリパス）を意味するものとする。
【０００５】
このように、ツリー構造は直感的に理解しやすく、体系的な分類・整理が可能となるため、現在のコンピュータファイル管理システムとして広く普及している。
【０００６】
一方、ツリー構造によらないファイル管理システムとして、下記特許文献１には、１つのファイルが複数のディレクトリに属することが許される旨記載されている。
また、下記特許文献２には、複数のファイルグループ間の包含関係を登録しておき、任意のグループにファイルが登録されたならば、前記ファイルグループ間の包含関係を参照し、関係する他のグループにも該当ファイルを登録する旨記載されている。
また、下記特許文献３には、仮想ディレクトリ名に対応付けて上位仮想ディレクトリ、下位仮想ディレクトリ、実在するファイルを格納するディレクトリへのパス、及びファイル名を設定して管理する仮想管理ファイルを設け、仮想ディレクトリの作成指示があったときに、仮想管理ファイル中にレコードを作成して、仮想ディレクトリ名を設定すると共に上位仮想ディレクトリ及び下位仮想ディレクトリのうちのあるものに設定するステップからなる構成が記載されている。
また、下記特許文献４には、ファイルに”属性”を付与し、この属性の論理式によりファイルを指定する方法と、この属性をディレクトリに見立ててツリー構造のディレクトリを構築する方法とが記載されている。
下記特許文献は本発明の背景を説明するための関連技術文献である。
【０００７】
【特許文献１】
特開昭６３−１２４１４７号公報（第２頁左下欄等）
【特許文献２】
特開平９−２６５４２１号公報（１０段落等）
【特許文献３】
特開２００２−１４０２２０号公報（６、７段落等）
【特許文献４】
特開２００２−１３２４３８号公報（９、１６段落等）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、従来の古典的なツリー構造のファイル管理システムの場合、階層を増やすとパスが長くなるため、入力操作が煩雑となる。
特に、操作者が操作したいファイル等のディレクトリパスを覚えていないとき、最悪の場合は、全てのディレクトリを探さなくてはならない。
また、階層が浅い場合でも、親子関係のない複数の分類基準を持つディレクトリやファイルを、従来のツリー構造で分類しようとすると、階層が異なれば必然的に親子関係が形成されてしまうため、使いやすいツリー構造を作成するためには熟慮が必要となる。
【０００９】
例えば、（ｉ）文書ファイル群（ｉｉ）バイナリファイル群（ｉｉｉ）テニスゲームに関するファイル群（ｉｖ）ゴルフゲームに関するファイル群、のそれぞれを格納するディレクトリ名が『ｄｏｃ』、『ｂｉｎ』、『ｔｅｎｎｉｓ』、『ｇｏｌｆ』であった場合、ファイル管理システムを構築する方法は、図８（ａ）と（ｂ）のいずれも可能であるが、これらの分類基準に意味的な包含関係はないため、いずれを採用しても一長一短がある。
【００１０】
すなわち、『ｔｅｎｎｉｓ』と『 ｄｏｃ 』とには 、例えば『哺乳類』と『犬』というような本来的な意味での親子関係がないので、図８（ａ）と図８（ｂ）はいずれも不自然な分類であるといえる。この場合の部分的な対処として、リンクを張る（或いは”エイリアス”を定義するということもある。）という方法が知られている。
【００１１】
しかし、リンクは操作者が一つ一つ定義していかなければならず、あらゆる方面から分類できるようなリンクを張ること に は不向きである。さらに、実ディレクトリや実ファイルが移動したときにはリンクが切断されるという問題もある。
また、上記特許文献１記載のような方法を採用した場合、ディレクトリが複数のディレクトリに属することはできないので、多数のディレクトリやファイルの分類には適さない。
【００１２】
また、上記特許文献２記載のような方法を採用した場合、グループＡを作成し、グループＡにファイルＢを登録後、グループＣを作成しグループＣはグループＡに含まれると定義して、さらにグループＣにファイルＤをファイルＢと同じファイル名で登録すると、利用者が知らないうちにファイルＢがファイルＤに上書きされてしまうという問題がある。
【００１３】
具体的には、例えば、『ｄｏｃ』が『ｔｅｎｎｉｓ』を内包するという関係を登録したとき、『ｔｅｎｎｉｓ』には関係するが『ｄｏｃ』には関係しないファイルを『ｔｅｎｎｉｓ』に登録すると、意に反してグループ『ｄｏｃ』の中に『ｄｏｃ』に関係しないファイルが登録されてしまうことになる。従って、グループ間の包含関係の登録には熟慮が必要となる。
【００１４】
また、上記特許文献３記載のような方法を採用した場合、仮想ディレクトリを作成することが操作者に負担をかけることになる。というのも、仮に『ｄｏｃ』という仮想ディレクトリを作成した場合、実ディレクトリ中に散らばっている『ｄｏｃ』に属すべきファイルを操作者が一つ一つ探し出し、それらを仮想ディレクトリ『ｄｏｃ』に配置しなければならないからである。
さらに、実ディレクトリや実ファイルを移動すると、それを適切に仮想ディレクトリに反映させなければ、実ディレクトリと仮想ディレクトリの対応関係に矛盾が生じ、場合によっては仮想ディレクトリからそのファイルにはたどり着けないということにもなりかねない。
【００１５】
また、上記特許文献４記載のような方法を採用した場合、多数の属性が定義されていた場合に、その属性を分類したり整理したりすることができない。また、”属性”を”ディレクトリ”に見立てる方法は、結局のところ古典的なツリー構造に帰着してしまうことになるため、ツリー構造が抱える問題を解決できない。
【００１６】
本発明は、これらの従来技術の問題点を解決し、付加的な操作をすることなく、従来よりも簡単かつ便利にファイル及びディレクトリの分類・整理ができる新規なファイル管理システムを提供することを主目的とする。
【００１７】
【課題を解決するための手段】
−ファイル管理システム−
上記課題を解決するため、本発明に係る第１のファイル管理システムは、１つのファイル（Ｆ１）及び／又は１つのディレクトリ（Ｄ３）の少なくとも１つが２つ以上のディレクトリ（Ｄ１，Ｄ２）に属することを許されたファイル管理システムであって、前記ファイル管理システムに属する任意のディレクトリ列によって 指定（定義）されたワーキングディレクトリの （操作対象となる）子ファイル或いは子ディレクトリ が、前記ワーキングディレクトリを構成するディレクトリ列に含まれる全てのディレクトリを親ディレクトリに持つ（すなわち操作対象がこのようなディレクトリ又はファイルとして定義される）ことを特徴とする。
【００１８】
本発明に係る第２のファイル管理システムは、１つのファイル（Ｆ１）及び／又は１つのディレクトリ（Ｄ３）の少なくとも１つが２つ以上のディレクトリ（Ｄ１，Ｄ２）に属することを許された計算機のファイル管理システムであって、前記計算機の操作者又は前記計算機上で動作するプログラムによって指定される操作対象のファイル又はディレクトリが、そのディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つことを特徴とする。
【００１９】
従来のツリー構造のファイル管理システムでは、１つの子ディレクトリ又は１つの子ファイルが、複数の親ディレクトリを持つことは許されなかった。しかし、本発明に係る第１又は第２のファイル管理システムのような、ネットワーク構造のファイル管理システムによると、各ファイル又は各ディレクトリが他の複数のディレクトリ又はファイルと互いに親子関係を持つことができる。さらに、ワーキングディレクトリを構成するディレクトリ列 に含まれる 全て のディレクトリを親ディレクトリに持つファイル或いはディレクトリ を操作対象とするか又はディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つファイル或いはディレクトリを操作対象とするため、操作対象となるディレクトリ又はファイルを指定するためのパスが複数定義できるようになる。その結果、パスの選択の自由度が大きくなり、従来よりも簡単かつ便利にファイル及びディレクトリを管理できる。
【００２０】
本発明に係る第１のファイル管理システムにおいて、新たにディレクトリ（Ｄ６）が作成される場合は、前記ワーキングディレクトリ（例えば、［／Ｄ１／Ｄ２／Ｄ３］）を構成するディレクトリ列（Ｄ１：Ｄ２：Ｄ３）に含まれる全てのディレクトリを親ディレクトリに持つ子ディレクトリ（Ｄ６）が作成されることが好ましい。
【００２１】
また、本発明に係る第２のファイル管理システムにおいて、新たなディレクトリ（Ｄ６）が作成される場合は、その新たなディレクトリを指定するディレクトリパス（例えば、［／Ｄ１／Ｄ２／Ｄ３］）の経路上にある全てのディレクトリ（Ｄ１、Ｄ２及びＤ３）を親ディレクトリに持つ子ディレクトリ（Ｄ６）が作成されることが好ましい。
【００２２】
従来のツリー構造のファイル管理システムでは、新たにディレクトリを作成する場合、ワーキングディレクトリを構成するディレクトリ列の最後尾のディレクトリ（例えば、ワーキングディレクトリが［／Ｄ１／Ｄ２／Ｄ３］であれば、Ｄ３）のみを親ディレクトリに持つ子ディレクトリが作成されていたところである。
しかし、本発明に係る第１又は第２のファイル管理システムでは、複数の親ディレクトリを許容するいわばネットワーク構造のファイル管理システムを構築するものであるため、１つのディレクトリのみと親子関係が結ばれるだけでは不十分である。
そこで、このように多くの親子関係が形成されるような仕組みにしておくことにより、パスの選択の自由度が大きくなり従来よりも簡単かつ便利にファイル及びディレクトリを管理できる。
【００２３】
本発明に係る第１のファイル管理システムにおいて、ディレクトリが削除される場合は、前記コマンドの引数で指定されたディレクトリ（Ｄ６）と、前記ワーキングディレクトリ（例えば［／Ｄ１／Ｄ３］）を構成するディレクトリ列（Ｄ１：Ｄ３）に含まれる全てのディレクトリ（Ｄ１、Ｄ３）との親子関係が解消されるが、ワーキングディレクトリを構成しないディレクトリ（Ｄ２）と前記引数で指定されたディレクトリ（Ｄ６）との間に親子関係が残っているときは、そのディレクトリとの親子関係は消滅しないで維持されるようにしておくことが好ましい。
このようにすると、ワーキングディレクトリによっては全ての親子関係がただちに消滅されるのではなく、親子関係の情報がわずかでも残っていれば、残されたパスからそのファイル又はそのディレクトリにたどり着くことができる。
ただし、全ての親子関係が解消され、ディレクトリが孤立してしまった場合は、ディレクトリそのものがシステムから削除（実際には、物理的に削除されず、所定の場所に移動するような場合も「削除」に含まれるものとする。）される。
【００２４】
また、本発明に係る第２のファイル管理システムにおいて、ディレクトリパス（例えば［／Ｄ１／Ｄ３］）と削除ディレクトリ（例えば［Ｄ６］）とで指定されるディレクトリ（［／Ｄ１／Ｄ３／Ｄ６］）が削除される場合には、前記ディレクトリパスの経路上にある全てのディレクトリのそれぞれ（Ｄ１及びＤ３）と前記削除ディレクトリ（Ｄ６）との間の親子関係が解消された後、前記削除ディレクトリ（Ｄ６）が親ディレクトリを持たない場合は前記削除ディレクトリ（Ｄ６）が削除され、解消後も前記ディレクトリが少なくとも１つの親ディレクトリ（例えばＤ２）を持つ場合には、前記削除ディレクトリ（Ｄ６）が削除されないことが好ましい。
このようにすると、削除ディレクトリのディレクトリパスの指定の仕方によっては、全ての親子関係がただちに消滅されるのではなく、親子関係の情報が１つでも残っていれば、残されたディレクトリパスを手がかりとしてその削除ディレクトリに到達することができる。
【００２５】
本発明に係る第１のファイル管理システムは、ＧＵＩ（グラフィカルユーザーインターフェース）環境を備えるコンピュータシステムにおいて、一つのウインドウをワーキングディレクトリとし、そのウインドウの中に、操作対象として選択されたファイル及びディレクトリ（フォルダ）のアイコンが表示されるような構成とすることもできる。
このようにすると、従来のツリー構造のファイル管理システムにＧＵＩ環境を備えるようなシステムを操作する場合と違和感なく操作することができる。
【００２６】
また、本発明に係る第２のファイル管理システムは、ＧＵＩ（グラフィカルユーザーインターフェース）環境を備えるコンピュータシステムにおいて、一つのウインドウ毎にディレクトリパスが与えられ、前記ディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つファイル及び／又はディレクトリ（フォルダ）を表わすアイコンが、前記ウインドウに表示されるような構成とすることもできる。
このようにすると、従来のツリー構造のファイル管理システムにおけるＧＵＩ環境を備えたシステムを操作する場合と違和感なく操作することができる。
【００２７】
−リスト表示制限プログラム（リスト表示プログラム）−
本発明に係る第１又は第２のファイル管理システムでは、ワーキングディレクトリを構成するディレクトリ列が短くなるにつれて、また、ネットワーク構造（親子関係）が複雑化するにつれて操作対象となるファイルやディレクトリの数が飛躍的に増加する。このため、操作対象を表示させる場合、表示されるディレクトリ及びファイルを何らかの方法で制限し、絞り込むことは、操作性を向上する上で重要である。そこで、本発明に係るファイル管理システムにおいてはワーキングディレクトリの操作対象の表示を制限するためのプログラムが有効である。
【００２８】
本発明に係る第１のプログラムは、ワーキングディレクトリの操作対象となっているファイルとディレクトリとの間の親子関係の有無を判別する第１のステップ（ＳＡ１）と、前記第１のステップ（ＳＡ１）によって親子関係が有りと判断された場合はその親ディレクトリを表示対象として選択し、選択から外された子ファイルは表示対象から除外するステップ（ＳＡ２）とを実行させるための操作対象表示制限プログラムが好ましい。
【００２９】
本発明に係る第２のプログラムは、ディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つファイルと、前記ディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つディレクトリとの間の親子関係の有無を判別するステップ（ＳＡ１）と、前記第１のステップ（ＳＡ１）によって親子関係有りと判断された場合には前記親ディレクトリを表示対象として選択し、選択から外された子ファイルは表示対象から除外するステップ（ＳＡ２）とを実行させることが好ましい。
【００３０】
この第１又は第２のプログラムを、表示対象として選択されたディレクトリ及びファイルの名前或いはこれらのアイコンを表示するリスト表示プログラムに適用すると、操作対象として表示されるファイルの数が減少するので、操作対象となるファイルやディレクトリ数が多いときにファイル操作が容易となり、操作者に見やすいリスト表示を提供することができる。
【００３１】
本発明に係る第３のプログラムは、ワーキングディレクトリの操作対象となっているファイルとディレクトリとの間の親子関係の有無を判別するステップ（ＳＡ１）と、親子関係が有りと判断された場合はその親ディレクトリを表示対象として選択し、選択から外された子ファイルは表示対象から除外するステップ（ＳＡ２）と、操作対象候補となっている子ディレクトリ間における親子関係の有無を判別するステップ（ＳＡ３）と、親子関係が有りと判断された場合はその親となるディレクトリのみ表示対象としてを選択し、選択から外された子ディレクトリは操作対象表示から除外するステップ（ＳＡ４）とを実行させるための操作対象表示制限プログラムが好ましい。
【００３２】
本発明に係る第４のプログラムは、ディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つファイルと、前記ディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つディレクトリとの間の親子関係の有無を判別するステップ（ＳＡ１）と、前記ステップ（ＳＡ１）において親子関係有りと判断された場合には前記親ディレクトリを表示対象として選択し、選択から外された子ファイルは表示対象から除外するステップ（ＳＡ２）と、前記ディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つディレクトリとの間の親子関係の有無を判別するステップ（ＳＡ３）と、前記ステップ（ＳＡ３）において親子関係有りと判断された場合にはその親ディレクトリを表示対象として選択し、子ディレクトリは表示対象から除外するステップ（ＳＡ４）とを実行させることが好ましい。
【００３３】
この第３又は第４のプログラムを、表示対象として選択されたディレクトリ及びファイルの名前或いはアイコンを表示するステップ（ＳＡ５）を含むリスト表示プログラムに適用すると、操作対象として表示されるファイルの数が減少するだけでなく、操作対象として表示されるディレクトリの数も減少するので、操作対象となるファイルやディレクトリ数が多いときにファイル操作が一層容易となり、操作者に見やすいリスト表示を提供することができる。
状況に応じて、第１又は第２のプログラムと第３又は第４のプログラムとを選択的にリスト表示することができるプログラムに適用することが好ましい。なお、本発明に係る第１乃至第４のプログラムは、種々のオペレーションシステムや種々のアプリケーションプログラムなどに適用することができる。
【００３４】
−データ構造及び記録媒体−
本発明に係る第１又は第２のファイル管理システムにおいて参照される、１つのファイル（Ｆ１）及び１つのディレクトリ（Ｄ３）とのいずれか一つと、２つ以上のディレクトリ（Ｄ１，Ｄ２）との間の親子関係を表わすデータ構造は、本発明に係る第１又は第２のネットワーク構造のファイル管理システムをコンピュータ等の情報処理装置で実現させる上で必要不可欠である。故に、このデータ構造が記録されたコンピュータ読み取り可能な記録媒体は極めて有用である。
【００３５】
−情報処理装置−
本発明に係る情報処理装置は、ファイルとディレクトリとの間の親子関係情報とディレクトリとディレクトリとの間の親子関係情報と各ファイルの管理情報と、各ディレクトリの管理情報とを記憶する管理情報記憶部と、ファイルの実体データを格納するファイル記憶部と、ファイル或いはディレクトリに対する操作命令を入力する入力部と、前記入力部から操作命令が入力されると、本発明に係る第１又は第２のファイル管理システムに従って、前記管理情報記憶部が記憶する情報及び／又は前記ファイル記憶部のファイルの実体データを読み出し又は書き込みしながら前記操作命令を実行する操作命令実行部を備えていることを特徴とする。
この情報処理装置は、計算機やデータをファイルとして記憶し、分類整理するデータサーバやビデオサーバ、データバックアップ装置に適用されることができる。
【００３６】
【発明を実施するための最良の形態】
本発明に係る実施形態の一例を、従来のツリー構造と比較しながら説明する。特に、本発明は、ワーキングディレクトリと、操作対象（ディレクトリ又はファイル）という２つの概念について、従来と異なる考え方を採用するので、まずここから説明する。
【００３７】
−ワーキングディレクトリの定義−
従来のツリー構造のファイル管理システムにおける、「ワーキングディレクトリ」とは、操作対象（ディレクトリ又はファイル）の親ディレクトリを意味し、ワーキングディレクトリを構成するディレクトリ列の最後尾のディレクトリを意味する。なお、ファイル管理システムがルートからワーキングディレクトリまでのパスを記憶しているので、 ワーキングディレクトリの１階層下にあるディレクトリ又はファイルは、ディレクトリ名なしで操作することができる。
これに対し、本発明に係るネットワーク構造のファイル管理システムにおける「ワーキングディレクトリ」とは、操作対象（すなわち、ディレクトリ又はファイル）の親ディレクトリを意味する点は従来と同じであるが、ファイル管理システムがネットワーク構造であるために、１つのファイル及び１つのディレクトリが複数の親ディレクトリを持つことを許されている。そこで、操作対象となるファイル及びディレクトリは、ワーキングディレクトリを構成するディレクトリ列の最後尾のディレクトリに限られず、ディレクトリ列の全てのディレクトリを親ディレクトリに持つ全てのディレクトリ又はファイルを、操作対象とする。
以下、具体例を用いて説明する。
【００３８】
−本発明の基本概念−
図１は本発明に係るネットワーク構造のファイル管理システムを例示している。全てのファイルと、ルートディレクトリを除く他の全てのディレクトリとは、いずれも必ずルートディレクトリを親ディレクトリに持つので、ルートディレクトリの記載は省略している。
矢印の付け根が矢の先頭の親ディレクトリを意味する。すなわち、Ｘ→Ｙという表記は、Ｙ（Ｙは、ファイルであってもディレクトリであってもよい）の親ディレクトリがＸとなることを意味する。従来のツリー構造と異なる点は、１つのファイル及び１つのディレクトリが、複数の親ディレクトリを持つことが許されている点である。
従って、Ｙがディレクトリの場合、Ｘ→Ｙと同時にＹ→Ｘが許されている。図１の例では、例えば、Ｄ１：『ｄｏｃ』はＤ２：『ｇｏｌｆ』の親ディレクトリであると同時に、Ｄ２：『ｇｏｌｆ』はＤ１：『ｄｏｃ』の親ディレクトリであり、相互に親子関係が形成されている。
図８（ａ）のような従来のツリー構造のファイル管理システムでは、ワーキングディレクトリが［／ｄｏｃ］のとき、操作対象は『ｔｅｎｎｉｓ』と『ｇｏｌｆ』のみである。ファイル『ｒｕｌｅ』を操作するときはワーキングディレクトリを［／ｄｏｃ／ｔｅｎｎｉｓ］に変更するか、コマンドの引数として正確なフルパス［／ｄｏｃ／ｔｅｎｎｉｓ／ｒｕｌｅ］を指定しなければならない。
すなわち従来のファイル管理システムでは、ワーキングディレクトリを構成するディレクトリ列［／ｄｏｃ］の最後尾の唯一のディレクトリ『ｄｏｃ』を親ディレクトリとするディレクトリ又はファイル（『ｔｅｎｎｉｓ』、『ｇｏｌｆ』）のみが、操作対象となるディレクトリやファイルであった。
本発明に係るファイル管理システムでは、ワーキングディレクトリを構成するディレクトリパスのディレクトリ列に含まれる全てのディレクトリを親ディレクトリとするディレクトリ又はファイルが操作対象となる。以下、種々の具体例を示す。
【００３９】
（第１の実施例）−ワーキングディレクトリからみた相対パスによる指定−
＜例１＞ワーキングディレクトリが［／ｄｏｃ／ｇｏｌｆ］の場合
図２（ａ）は、本発明に係るファイル管理システムにおいて、ワーキングディレクトリを構成するディレクトリパスが［／ｄｏｃ／ｇｏｌｆ］の状態を示している。操作対象となるディレクトリ又はファイルは、図２（ａ）の楕円形の破線で囲んだディレクトリＤ１：『ｄｏｃ』とＤ２：『ｇｏｌｆ』の両方を親ディレクトリに持つディレクトリ又はファイルである。すなわち、この例では、図２（ａ）において斜線を付したＦ１：『ｍａｎｕａｌ』とＦ２：『ｒｅａｄｍｅ』及びＤ３：『ｔｅｎｎｉｓ』が該当する。
コマンド例を以下に示す。なお、コマンドはオペレーティングシステム（ＯＳ）によって異なる場合もあるため、コマンドの意味を右側に注記する。本発明はＯＳに依存せず、コマンドの意味が同じであれば表現の違いは本質的な問題とはならない。
・コマンド入力例
％  ｐｗｄ      （ワーキングディレクトリを出力せよ）
／ｄｏｃ／ｇｏｌｆ
％ｌｓ（ワーキングディレクトリの操作対象をリスト表示せよ）
ｍａｎｕａｌ  ｒｅａｄｍｅ  ｔｅｎｎｉｓ
【００４０】
＜例２＞ワーキングディレクトリが［／ｄｏｃ］の場合
図２（ｂ）は、本発明に係るファイル管理システムにおいて、ワーキングディレクトリが［／ｄｏｃ］の状態を示している。操作対象となるディレクトリ又はファイルは、図２（ｂ）の楕円形の破線で囲んだディレクトリＤ１：『ｄｏｃ』を親ディレクトリに持つディレクトリ又はファイルである。すなわち、この例では、図２（ｂ）において斜線を付したＦ１：『ｍａｎｕａｌ』、Ｆ２：『ｒｅａｄｍｅ』、Ｆ３：『ｒｕｌｅ』、Ｆ４：『ｓｃｏｒｅ』、Ｄ２：『ｇｏｌｆ』、Ｄ３：『ｔｅｎｎｉｓ』である。
・コマンド入力例
％  ｐｗｄ
／ｄｏｃ
％ｌｓ
ｍａｎｕａｌ  ｒｅａｄｍｅ  ｒｕｌｅ  ｓｃｏｒｅ
ｇｏｌｆ  ｔｅｎｎｉｓ
【００４１】
＜例３＞ワーキングディレクトリが［／ｄｏｃ／ｇｏｌｆ／ｔｅｎｎｉｓ］の場合（図３（ａ））
操作対象となるディレクトリ又はファイルは、Ｄ１：『ｄｏｃ』とＤ２：『ｇｏｌｆ』とＤ３：『ｔｅｎｎｉｓ』の全てを親ディレクトリに持つディレクトリ又はファイルである。すなわち、この例では、該当するディレクトリ及びファイルは存在しない。
すなわち、
％  ｐｗｄ
／ｄｏｃ／ｇｏｌｆ／ｔｅｎｎｉｓ
％  ｌｓ
”（何も表示されない）”
【００４２】
なお、ワーキングディレクトリがルート（親ディレクトリが一つも指定されていない状態）の場合は、全てのディレクトリとファイルが操作対象となる。
このように、本発明に係るファイル管理システムは、ワーキングディレクトリを構成するディレクトリ列（ワーキングディレクトリを表示するパスを構成するために列記された各ディレクトリ）の全てを親ディレクトリに持つディレクトリ又はファイルが操作対象となる。このため、ディレクトリ列の順序が変わっても操作対象となるディレクトリ又はファイルは変わらない。
【００４３】
例えば、ワーキングディレクトリが［／ｇｏｌｆ／ｔｅｎｎｉｓ］の場合と［／ｔｅｎｎｉｓ／ｇｏｌｆ］の場合とで操作対象は変わらず、『ｇｏｌｆ』及び『ｔｅｎｎｉｓ』の両方を親ディレクトリに持つディレクトリ又はファイル（すなわち、Ｄ２：『ｄｏｃ』とＤ３：『ｂｉｎ』）が、操作対象となる。
なお、ディレクトリ列の並び方の違いは、ワーキングディレクトリの変更コマンド（ｃｄ）で相対パスの指定を行った場合に異なる意味を持つ。相対パスとは、ワーキングディレクトリから見て、親ディレクトリを「．．」と、ワーキングディレクトリそのものを「．］と表わすパスの指定方法である。例えば、ワーキングディレクトリが［／ｇｏｌｆ／ｔｅｎｎｉｓ］のとき、コマンド「ｃｄ  ．．」を実施すると、ワーキングディレクトリが［／ｇｏｌｆ］に変更されるが、ワーキングディレクトリが［／ｔｅｎｎｉｓ／ｇｏｌｆ］のとき、コマンド「ｃｄ  ．．」を実施すると、ワーキングディレクトリが［／ｔｅｎｎｉｓ］に変更される。
【００４４】
（第２の実施例）−絶対パスによる指定−
次に、別の例を示す。図１のような本発明に係るファイル管理システムにおいて、ファイルＦ３：『ｒｕｌｅ』を操作したい場合、『ｒｕｌｅ』の親ディレクトリはＤ１：『ｄｏｃ』とＤ３：『ｔｅｎｎｉｓ』とがあるが、操作者は、これらのうち少なくとも一つの親ディレクトリ（Ｄ１又はＤ３）をディレクトリ列に含むようにパスを指定すればよい。
すなわち、本発明に係るファイル管理システムでは、指定された一つの絶対パスが示すディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つディレクトリ又はファイルが操作対象となるので、例えば、ファイル『ｒｕｌｅ』を操作するときは、［／ｄｏｃ／ｒｕｌｅ］、［／ｄｏｃ／ｔｅｎｎｉｓ／ｒｕｌｅ］、［／ｔｅｎｎｉｓ／ｄｏｃ／ｒｕｌｅ］、[／ｔｅｎｎｉｓ／ｒｕｌｅ]、［／ｒｕｌｅ］のいずれでも指定できる。
【００４５】
例えば、ファイルＦ３：『ｒｕｌｅ』を画面上に表示する場合、
ｃａｔ  ／ｄｏｃ／ｒｕｌｅ  （『ｒｕｌｅ』を表示せよ）  （コマンド１）
ｃａｔ  ／ｄｏｃ／ｔｅｎｎｉｓ／ｒｕｌｅ                （コマンド２）
ｃａｔ  ／ｔｅｎｎｉｓ／ｄｏｃ／ｒｕｌｅ                （コマンド３）
ｃａｔ  ／ｔｅｎｎｉｓ／ｒｕｌｅ                        （コマンド４）
ｃａｔ  ／ｒｕｌｅ                                      （コマンド５）
は、引数の実体が同じファイルを示すため、全て同じ結果が得られる。
【００４６】
従来のツリー構造のファイル管理システムの場合、上記コマンド１とコマンド２とコマンド３とでは引数となるパスが異なるために、異なるファイルを指定した結果となる。なお、従来のツリー構造において、エイリアスやシンボリックリンクなどにより、異なるパスを同じに見せる技術もあるが、それらと本発明に係るファイル管理システムとは、基本概念が本質的に異なるものである。
従って、本発明に係るファイル管理システムでは、操作対象となるディレクトリ又はファイルを指定するためのパスの選択の自由度が従来のツリー構造の場合よりも大きい。
【００４７】
なお、ディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つファイル又はディレクトリを操作対象とする代わりに、ディレクトリパスをディレクトリ名と、その間を論理記号で接続した論理式として、その論理式が真となるようなファイル又はディレクトリを操作対象としてもよい。
【００４８】
第１の実施例では、ワーキングディレクトリを中心に説明したが、 第２の実施例のような絶対パスによる指定でもよく、さらに、 ワーキングディレクトリからの相対パスによる指定でもよい。 すなわち、上記のいずれの指定方法でも、最終的には、 ルートから操作対象となるファイル又はディレクトリに至るディレクトリパスによる 指定となり、そのディレクトリパスの経路上にある全てのディレクトリを 親ディレクトリに持つファイル又はディレクトリが操作対象である。
【００４９】
（第３の実施例）−データ構造の比較−
以上のような操作を実現するために、本発明に係るファイル管理システムでは、一つのファイルＡに対して、このファイルＡが属する１又は２以上のディレクトリ情報と関連づけたファイル管理情報（これを、”ファイル親子関係情報”という。）と、１つのディレクトリＸに対して、このディレクトリＸが属する１又は２以上のディレクトリ情報と関連づけたディレクトリ管理情報（これを、”ディレクトリ親子関係情報”という。）とを用いる。なお、ルートディレクトリへの親子関係情報は省略し、親子関係情報が空の場合は、ルートディレクトリだけを親ディレクトリに持つこととしてもよい。
換言すると、ファイル親子関係情報及びディレクトリ親子関係情報は、各ディレクトリ毎に、その子ファイル或いは子ディレクトリを列挙したデータ構造によって表現する。又は、各ファイルと各ディレクトリ毎に、それの親ディレクトリを列挙したデータ構造で表現する。ファイル親子関係情報についても同様である。
図１に例示する本発明に係るネットワーク構造のファイル管理システムを実現するためのデータ列を、図８（ａ）に例示する従来のツリー構造のファイル管理システムのデータ列と比較しながら説明する。データ列の左側が親ディレクトリ、右側が子ディレクトリを表わす。
【００５０】
［従来（図８（ａ））のディレクトリ構造のデータ列］
ｄｏｃ：  ｔｅｎｎｉｓ，ｇｏｌｆ
ｂｉｎ：  ｔｅｎｎｉｓ，ｇｏｌｆ
【００５１】
［本発明（図１）のディレクトリ構造のデータ列］
ｄｏｃ：  ｇｏｌｆ，ｔｅｎｎｉｓ
ｂｉｎ：  ｇｏｌｆ，ｔｅｎｎｉｓ
ｔｅｎｎｉｓ:  ｄｏｃ，ｇｏｌｆ，ｂｉｎ
ｇｏｌｆ:  ｄｏｃ，ｔｅｎｎｉｓ，ｂｉｎ
【００５２】
このように、本発明に係るファイル管理システムは、各ディレクトリが他のディレクトリとの親子関係をそれぞれに保持するデータ構造を有している。ワーキングディレクトリの変更（ｃｄコマンド）は、ワーキングディレクトリ列を変更することを意味する。
故に、上述のようなデータ列を有する本発明の場合、データ列に含まれないディレクトリ名（例えば、『ｓｈｏｐ』）が含まれていても、
ｃｄ  ／ｔｅｎｎｉｓ／ｓｈｏｐ
という操作が可能となる。この場合、ｔｅｎｎｉｓとｓｈｏｐの両方を親ディレクトリに持つファイル及びディレクトリが操作対象となる。従来のツリー構造を有するファイル管理システムでこのような操作を行うことは許されず、エラー処理されることになるであろう。
【００５３】
本発明に係るファイル管理システムを用いると、操作者が操作者の好みの分類基準に従ってファイルを移動したためにパスが変更された場合でも、アプリケーションプログラムが使用していたパスが残っていれば、そのアプリケーションプログラムを正しく動作させることができる。
【００５４】
（第４の実施例）
本発明に係るファイル管理システム は、従来のＯＳのコマンド操作体系を、そのまま用いることができる。一例として、ＵＮＩＸオペレーティングシステムに、本発明に係るファイル管理システムを適用したときのコマンド例を、図１に例示したファイルやディレクトリに対しての操作例を示しながら説明する。なお、コマンドはＯＳによって異なるが、本発明に係るファイル管理システム はＯＳに依存せず、コマンドの意味が同じであれば、表現の違いは本質的な問題とはならない。
ディレクトリ変更コマンドの入力形式は、『ｃｄ  ＤＩＲＰＡＴＨ』である。以下、入力形式中の英大文字は、コマンドパラメータを表わし、操作者は適切な文字列を入力する。また、『［ＯＰＴＩＯＮ］』は、オプション機能の指定で、操作者は必要であれば、予め決められたオプション指定文字を入力する。『ｃｄ』コマンドは、ワーキングディレクトリを『ＤＩＲＰＡＴＨ』で指定されるディレクトリパスに変更する。
ワーキングディレクトリ表示コマンドの入力形式は、『ｐｗｄ』である。これは、ワーキングディレクトリを表示する。例えば、『ｃｄ  ／ｄｏｃ／ｇｏｌｆ』とコマンドを入力した後に、『ｐｗｄ』コマンドを入力すると、［／ｄｏｃ／ｇｏｌｆ］が表示される（図２（ａ）参照）。さらに、『ｃｄ  ．．／ｔｅｎｎｉｓ』とコマンドを入力した後に、『ｐｗｄ』コマンドを入力すると、［／ｄｏｃ／ｔｅｎｎｉｓ］が表示される。
リスト表示コマンドの入力形式は、『ｌｓ  ［ＯＰＴＩＯＮ］  ＤＩＲＰＡＴＨ』である。これは、『ＤＩＲＰＡＴＨ』で指定されるディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つファイル及びディレクトリの名前を表示する。ワーキングディレクトリが［／ｄｏｃ／ｇｏｌｆ］の状態で、リスト表示コマンドを入力すると、『ｍａｎｕａｌ』と『ｒｅａｄｍｅ』が表示される（図２（ａ）参照）。また、『ｌｓ  ／』とすると、全てのファイルの名前とルートディレクトリを除く全てのディレクトリの名前が表示される。
必要により、オプション機能を指定して、ファイルやディレクトリの表示形式などを変更する。
【００５５】
−コマンド例１：  ディレクトリ作成コマンドｍｋｄｉｒ−
ディレクトリ作成コマンドの入力形式は、『ｍｋｄｉｒ  ＤＩＲＰＡＴＨ／ＤＩＲＮＡＭＥ』である。これは、『ＤＩＲＰＡＴＨ』で指定されるディレクトリパスの経路上にある全てのディレクトリを親ディレクトリとするディレクトリを『ＤＩＲＮＡＭＥ』で指定される名前で新規に作る。ただし、すでに同じ名前のディレクトリが存在している場合は、新規に作るのではなく、同じ名前のディレクトリを子とし、『ＤＩＲＰＡＴＨ』で指定されるディレクトリパスの経路上にある全てのディレクトリを親とする親子関係を設定する。
【００５６】
次に、図３（ｂ）を参照してディレクトリを作るコマンド（ｍｋｄｉｒ）を説明する。ワーキングディレクトリが／ｄｏｃ／ｇｏｌｆ／ｔｅｎｎｉｓの場合を考える（すなわち、『ｃｄ  ／ｄｏｃ／ｇｏｌｆ／ｔｅｎｎｉｓ』とコマンドを入力する。）
％  ｐｗｄ
／ｄｏｃ／ｇｏｌｆ／ｔｅｎｎｉｓ
である。この状態で、
％  ｍｋｄｉｒ  ｒｅｃｏｒｄ    （ｒｅｃｏｒｄという名のディレクトリを作成せよ。）
というコマンドを入力すると、本発明に係るファイル管理システムではワーキングディレクトリを構成するディレクトリ列（Ｄ１：『ｄｏｃ』、Ｄ２：『ｇｏｌｆ』、Ｄ３：『ｔｅｎｎｉｓ』）全てを親ディレクトリに持つ子ディレクトリＤ６：『ｒｅｃｏｒｄ』が作成される（図３（ｂ））。
【００５７】
［『ｒｅｃｏｒｄ』ディレクトリ作成後のディレクトリ親子関係情報］
ｄｏｃ：  ｇｏｌｆ，ｔｅｎｎｉｓ，ｒｅｃｏｒｄ
ｂｉｎ：  ｇｏｌｆ，ｔｅｎｎｉｓ
ｔｅｎｎｉｓ:  ｄｏｃ，ｇｏｌｆ，ｂｉｎ，ｒｅｃｏｒｄ
ｇｏｌｆ:  ｄｏｃ，ｔｅｎｎｉｓ，ｂｉｎ，ｒｅｃｏｒｄ
【００５８】
なお、ファイルを複写（コピー）するコマンドについても、ディレクトリを作成するコマンド（ｍｋｄｉｒ）と同様の方法を適用することができる。
また、ワーキングディレクトリがルートのときに、
ｍｋｄｉｒ  ／ｄｏｃ／ｇｏｌｆ／ｔｅｎｎｉｓ／ｒｅｃｏｒｄ
としても、同じ結果が得られる。
【００５９】
−コマンド例２：  ディレクトリ削除コマンドｒｍｄｉｒ−
ディレクトリ削除コマンドの入力形式は、『ｒｍｄｉｒ  ＤＩＲＰＡＴＨ／ＤＩＲＮＡＭＥ』である。これは、『ＤＩＲＮＡＭＥ』で指定される名前のディレクトリを子ディレクトリとし、『ＤＩＲＰＡＴＨ』で指定されるディレクトリパスの経路上にある全てのディレクトリを親とする親子関係を解消する。解消後、『ＤＩＲＮＡＭＥ』で指定される名前のディレクトリの親ディレクトリがルートディレクトリだけになり、かつ子ファイルや子ディレクトリがない場合は、『ＤＩＲＮＡＭＥ』で指定される名前のディレクトリを削除するが、そうではない場合は、削除しない。必要であれば、オプション機能を指定して、子ファイルや子ディレクトリが存在しても、『ＤＩＲＮＡＭＥ』で指定される名前のディレクトリを削除したり、子ファイルや子ディレクトリを再帰的に削除したりする。
【００６０】
次に、図４を参照してディレクトリを削除するコマンド（ｒｍｄｉｒ）を具体的に説明する。ｒｍｄｉｒはやや複雑である。
まず、ワーキングディレクトリが［／ｄｏｃ／ｔｅｎｎｉｓ］の場合（図３（ｂ）の状態から、コマンド『ｃｄ  ／ｄｏｃ／ｔｅｎｎｉｓ』を入力した直後の状態）を考える。
【００６１】
％  ｐｗｄ
／ｄｏｃ／ｔｅｎｎｉｓ
である。この状態で、
％  ｒｍｄｉｒ  ｒｅｃｏｒｄ    （ｒｅｃｏｒｄという名のディレクトリを削除せよ。）
というコマンドを入力すると、引数で指定されたディレクトリ（Ｄ６：『ｒｅｃｏｒｄ』）と、ワーキングディレクトリを構成するディレクトリ列（Ｄ１：『ｄｏｃ』、Ｄ３：『ｔｅｎｎｉｓ』）との親子関係が解消される（図４）。
しかし、ワーキングディレクトリを構成しないディレクトリ（Ｄ２：『ｇｏｌｆ』）と親子関係が残っているので、そのディレクトリとの親子関係は消滅しないで維持される（図４）。
【００６２】
［『ｒｅｃｏｒｄ』ディレクトリ削除後のディレクトリ親子関係情報］
ｄｏｃ：  ｇｏｌｆ，ｔｅｎｎｉｓ
ｂｉｎ：  ｇｏｌｆ，ｔｅｎｎｉｓ
ｔｅｎｎｉｓ:  ｄｏｃ，ｇｏｌｆ，ｂｉｎ
ｇｏｌｆ:  ｄｏｃ，ｔｅｎｎｉｓ，ｂｉｎ，ｒｅｃｏｒｄ
【００６３】
もし、ワーキングディレクトリが、［／ｄｏｃ／ｇｏｌｆ／ｔｅｎｎｉｓ］のときに、
％  ｒｍｄｉｒ  ｒｅｃｏｒｄ
を実行すると、全ての親子関係が解消され、このようにディレクトリが孤立した場合は、ディレクトリそのものがシステムから削除（実際には、物理的に削除されず、所定の場所に移動するような場合も「削除」に含まれるものとする。）される。
なお、ワーキングディレクトリを中心に説明したが、絶対パス或いはワーキングディレクトリからの相対パスによる指定でも、同様で、そのディレクトリパスの経路上にある全てのディレクトリのそれぞれと、この削除ディレクトリとの親子関係が解消される。
ファイル削除コマンドの入力形式は、『ｒｍ  ＤＩＲＰＡＴＨ／ＦＩＬＥＮＡＭＥ』である。これは、『ＤＩＲＰＡＴＨ』で指定されるディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つ『ＦＩＬＥＮＡＭＥ』で指定される名前のファイルを削除する。同時にそのファイルに関する全ての親子関係を解消する。必要であれば、オプション機能を指定して、ファイルではなくディレクトリを削除したり、削除する前に実行の是非を問い合わせたり、削除禁止属性が付いていても強制的に削除したりする。
【００６４】
なお、ファイルを削除するコマンド（ｒｍ）についても、ディレクトリの削除に関するコマンド（ｒｍｄｉｒ）と同様の方法を適用することができる。すなわち、図４において、削除ディレクトリ（Ｄ６：『ｒｅｃｏｒｄ』）に代えて、削除ファイル（仮に、Ｆ６：『ｒｅｃｏｒｄ．ｔｘｔ』）としても同様である。ただし、ファイルを削除する場合は、親子関係が残っていても、 削除した方が使いやすいことが経験的に分かっている。したがって、ディレクトリとは異なり、ファイルについては原則として親子関係が残っていても削除するようにしておくファイル管理システムとすることが好ましい。
【００６５】
−コマンド例３：  コピーコマンドｃｐ−
コピーコマンドの入力形式は、『ｃｐ  ＳＲＣＰＡＴＨ／ＳＲＣＮＡＭＥ  ＤＳＴＰＡＴＨ／ＤＳＴＮＡＭＥ』である。コマンドｃｐは、『ＳＲＣＰＡＴＨ』で指定されるディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つ『ＳＲＣＮＡＭＥ』で指定される名前のファイルを、『ＤＳＴＰＡＴＨ』で指定されるディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つ『ＤＳＴＮＡＭＥ』で指定される名前のファイルに、複写する。必要であれば、オプション機能を指定し、コピーする前に実行の是非を問い合わせたり、コピー元の属性をコピー先に引き継いだりすることもできる。なお、『ＤＳＴＰＡＴＨ』で指定されるディレクトリパスの中に『／．／』がある場合は、『ＳＲＣＮＡＭＥ』で指定されるファイルの親ディレクトリの全てとして解釈される。
【００６６】
−コマンド例４：  移動コマンドｍｖ−
移動コマンドの入力形式は、『ｍｖ  ＳＲＣＰＡＴＨ／ＳＲＣＮＡＭＥ  ＤＳＴＰＡＴＨ／ＤＳＴＮＡＭＥ』である。これは、『ＳＲＣＰＡＴＨ』で指定されるディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つ『ＳＲＣＮＡＭＥ』で指定される名前のファイルを、『ＤＳＴＰＡＴＨ』で指定されるディレクトリパスの経路上にある全てのディレクトリを親ディレクトリに持つ『ＤＳＴＮＡＭＥ』で指定される名前のファイルに移動する。すなわち、『ＳＲＣＰＡＴＨ』で指定されるディレクトリパスの経路上にある全てのディレクトリを親とし、『ＳＲＣＮＡＭＥ』で指定される名前のファイルを子とする親子関係を解消し、『ＳＲＣＮＡＭＥ』で指定される名前のファイルの名前を『ＤＳＴＮＡＭＥ』で指定される名前に変更し、『ＤＳＴＰＡＴＨ』で指定されるディレクトリパスの経路上にある全てのディレクトリを親とし、『ＤＳＴＮＡＭＥ』で指定される名前のファイルを子とする親子関係を設定する。なお、『ＤＳＴＰＡＴＨ』で指定されるディレクトリパスの中に『／．／』がある場合は、解消後の親ディレクトリの全てとして解釈される。なお、ファイルだけではなく、ディレクトリの移動も、同様に可能である。
【００６７】
−プログラムからファイルを操作する場合について−
上記第１から第５のコマンド例は、いずれも操作者がファイル操作コマンド入力をする場合について説明したが、次は、本ファイル管理システムを備えた計算機上で動作するプログラムがファイルを操作する場合について説明する。
ｏｐｅｎ関数の引数に、ディレクトリパスとファイル名によって、操作ファイルを指定するときのように、複数ではなく、１つのファイルだけを指定することが、予め決まっている場合は、ディレクトリパスの経路上にある一部のディレクトリを親ディレクトリに持つファイルが１つの場合に、それを操作対象とする。例えば、『ｏｐｅｎ  （／ｄｉｒａ／ｄｉｒｂ／ｄｉｒｃ／ｄｉｒｄ／ｆｉｌｅａ）』と関数が呼ばれる場合、『ｄｉｒａ』の子ファイルに『ｆｉｌｅａ』があるかを調べ、ない場合は、次の『ｄｉｒｂ』の子ファイルに『ｆｉｌｅａ』があるかを調べる。複数のファイルがある場合は、さらに『ｄｉｒｂ』と『ｄｉｒｃ』の両方を親ディレクトリに持つ『ｆｉｌｅａ』があるかを調べ、それが１つであれば、『ｄｉｒｄ』との親子関係は調べずに、それを操作対象ファイルとする。
上の例で示したように、『ｆｉｌｅａ』の親ディレクトリが『ｄｉｒｂ』であっても、その『ｄｉｒｂ』の親ディレクトリである『ｄｉｒａ』も親ディレクトリとして持たなければならないという制限はない。さらに、ディレクトリパスで、『／ｄｉｒａ／ｄｉｒｂ』という指定をする際にも、『ｄｉｒａ』が『ｄｉｒｂ』の親ディレクトリである必要もない。なお、これらはｏｐｅｎ関数だけに限るのではなく、上で説明した全てのコマンドでも同様である。
【００６８】
本発明に係るファイル管理システム を用いると、操作者が操作者の好みの分類基準に従ってファイルを移動したためにディレクトリパスが変わってしまった場合でも、アプリケーションプログラムが使っていたディレクトリパスが残っていれば、それを手がかりとしてアプリケーションプログラムを正しく動作させることができる。
【００６９】
（第５の実施例）
以上のようないわばネットワーク構造のファイル管理システムを持つディレクトリ構造では、ワーキングディレクトリのディレクトリ列が短くなるにつれて急激に操作対象となるディレクトリ及びファイルが増大する。
例えば、上述の例３：ワーキングディレクトリを構成するディレクトリパスが［／ｄｏｃ／ｇｏｌｆ／ｔｅｎｎｉｓ］の場合（図３（ａ）参照）、操作対象となるディレクトリ及びファイルは該当するものが１つも存在しなかったが、例２（ワーキングディレクトリを構成するディレクトリパスが［／ｄｏｃ］）の場合（図２（ｂ）参照）、対象ディレクトリ及びファイルは、４ファイル・２ディレクトリ（『ｍａｎｕａｌ』、『ｒｅａｄｍｅ』、『ｒｕｌｅ』、『ｓｃｏｒｅ』、及び『ｇｏｌｆ』、『ｔｅｎｎｉｓ』）もあった。
【００７０】
ところが、図８（ａ）のような従来のツリー構造で同じケースを考えてみると、例２（ワーキングディレクトリが［／ｄｏｃ］）の場合、操作対象となるディレクトリ又はファイルは『ｔｅｎｎｉｓ』と『ｇｏｌｆ』の２つだけであり、ｔｅｎｎｉｓ、ｇｏｌｆの下にあるファイル（『ｍａｎｕａｌ』、『ｒｅａｄｍｅ』、『ｒｕｌｅ』、『ｓｃｏｒｅ』）は、ｌｓコマンドで表示されない。
【００７１】
そこで、 従来のツリー構造のファイル管理システムを、本発明に係るファイル管理システムに置き換えても違和感なく操作ができるように、また、ディレクトリの階層化によって、指定したいディレクトリやファイルに早くたどり着けるように、リスト表示コマンド（ワーキングディレクトリに属している子ディレクトリ及び子ファイルの名前をリスト表示させるコマンド）に表示制限を加える方法について説明する。
そのために、従来のｌｓコマンドに対して、以下のルールを実行させるプログラムを適用する。
【００７２】
［ルール１］  表示対象となっているファイルとディレクトリとの間に親子関係を判断し（ＳＡ１）、親子関係がある場合はこれを選択し、親となるディレクトリのみをリスト表示の対象とし、表示対象となった親ディレクトリの子ファイルは選択から外されたものとして表示対象から除外する（ＳＡ２）。
［ルール２］  表示対象候補となっている子ディレクトリ間で親子関係を判断し（ＳＡ３）、親子関係がある場合はこれを選択してそれらの親となるディレクトリのみを表示対象として、子ディレクトリは選択から外されたものとして表示対象から除外する（ＳＡ４）。
【００７３】
なお、後で詳しく説明するが、このルールは、ルール１のみを適用して、表示対象に選択されたディレクトリやファイルの名前を表示する（ＳＡ５）場合と、ルール１を適用した後、さらにルール２を適用してから、表示対象に選択されたディレクトリやファイルの名前を表示する（ＳＡ５）場合との、２つの態様が考えられる。ただし、ルール１を適用せずルール２のみを適用する態様は実用的ではない。
【００７４】
（ルール１の適用例）
はじめに、上述の例２（図２（ｂ））に、ルール１を適用する場合を考える。すなわち、表示対象となっているファイル（Ｆ１：『ｍａｎｕａｌ』、Ｆ２：『ｒｅａｄｍｅ』、Ｆ３：『ｒｕｌｅ』、Ｆ４：『ｓｃｏｒｅ』）と、ディレクトリ（Ｄ２：『ｇｏｌｆ』、Ｄ３：『ｔｅｎｎｉｓ』）との間に親子関係があるので、親となるディレクトリ（Ｄ２：『ｇｏｌｆ』とＤ３：『ｔｅｎｎｉｓ』）のみをリスト表示して、表示したディレクトリ（Ｄ２及びＤ３）の子ファイル（Ｆ１〜Ｆ４）は表示しない。
すなわち、
％  ｐｗｄ
／ｄｏｃ
％  ｌｓ（ルール１）
ｇｏｌｆ  ｔｅｎｎｉｓ
というように、ルール１を適用しなければ表示されたであろう子ファイル（Ｆ１〜Ｆ４）が隠される。
このようにすれば、子ファイルが表示されなくなる代わりに隠された子ファイルの親ディレクトリが代表として表示されるので、表示数が減り、従来のツリー構造のファイル管理システムとの違和感を小さくできる。なお、隠されても操作対象から除外される訳ではない。従ってこの点において、従来のツリー構造とは大きく異なる。
【００７５】
（ルール１及びルール２の適用例）
次に、図５を参照してリスト表示コマンドｌｓにおいて、ルール１及びルール２を適用する一例を示す。例えば、ワーキングディレクトリがルートディレクトリである場合（すなわち、ディレクトリパスがルートディレクトリである場合）、もしルール１を適用しないでｌｓコマンドを実行すると、そのファイル管理システムに存在する全てのディレクトリ及びファイルが操作対象として表示されるため、非常に表示数が多くなる。ここで、ルール１を適用すると、子ファイルが表示されなくなるので、『ｄｏｃ』、『ｇｏｌｆ』、『ｔｅｎｎｉｓ』、『ｂｉｎ』、『ｇａｍｅｓ』のみが表示され、表示数はかなり少なくなる。
すなわち、
％  ｐｗｄ
／
％  ｌｓ（ルール１）
ｄｏｃ  ｇｏｌｆ  ｔｅｎｎｉｓ  ｂｉｎ  ｇａｍｅｓ
となる。
このとき、ルール２を適用すると、表示はさらに少なくなる。すなわち、表示対象候補となっている子ディレクトリ（Ｄ１：『ｄｏｃ』、Ｄ２：『ｇｏｌｆ』、Ｄ３：『ｔｅｎｎｉｓ』、Ｄ４：『ｂｉｎ』、Ｄ５：『ｇａｍｅｓ』）間の親子関係を調べる。親子関係がある場合（この例では、『ｇｏｌｆ』及び『ｔｅｎｎｉｓ』の両方の親にあたるディレクトリＤ５：『ｇａｍｅｓ』が存在する）、それらの親となるディレクトリ（『ｇａｍｅｓ』）のみを表示して、子ディレクトリ（『ｇｏｌｆ』及び『ｔｅｎｎｉｓ』）はリスト表示しない。
％  ｐｗｄ
／
％  ｌｓ（ルール１＋ルール２）
ｄｏｃ  ｂｉｎ  ｇａｍｅｓ
となる。
【００７６】
上記の例では、ディレクトリ又はファイル数が当初から少ない極めて単純な具体例を示したが、ファイル及びディレクトリ数が増大し、親子関係も複雑化してくると、表示制限なしにｌｓコマンドを実行すると膨大な量のファイル及びディレクトリ名が表示されることになる。故に、リスト表示コマンドｌｓに上記ルール１そして必要によりルール２を適用すると、表示数が大幅に減り、操作性が向上する。
【００７７】
なお、なるべく表示を隠さないようにしたいような上記とは逆のケースも想定できるが、その場合コマンド名を区別するか、コマンドに必要なスイッチ（オプション）を付けて区別すればよい。
例えば、コマンド「ｌａ」は、リストオール、すなわち、ルール１もルール２も適用しないでｌｓコマンドを実行せよ、コマンド「ｌｓ」は、従来のｌｓコマンドにルール１を適用して実行せよ、コマンド「ｌｓ  −ｍｉｎ」は、従来のｌｓコマンドにルール１とルール２を適用して実行せよ、と定義する。なお、コマンド名やスイッチはＯＳにより違っていても構わない。
【００７８】
−アルゴリズムの説明−
以上のリスト表示コマンドを実行するためのアルゴリズムの一例について説明する。はじめに、引数からフルパス（ルートディレクトリからのディレクトリパス）を得るためのサブルーチンについて図６を参照して説明する。
【００７９】
（フルパス取得サブルーチン）
％コマンド  引数
を実行した場合、引数（コマンドパラメータで指定されたディレクトリパス）の先頭文字が”／”で始まるか否かを判定し、／で始まる場合は引数はフルパスを意味するものと判断する。引数の先頭文字が”／”以外、例えば、”．．／ｇｏｌｆ”であった場合、ワーキングディレクトリ（例えば［／ｄｏｃ］）に引数（．．／ｇｏｌｆ）を連結したもの（／ｄｏｃ／．．／ｇｏｌｆ）、すなわち（／ｇｏｌｆ）をフルパスとする。
【００８０】
（リスト表示コマンドのフローチャート）
図７は、ルール１及びルール２を適用したリスト表示コマンドｌｓ（操作対象ファイル及びディレクトリをリスト表示せよ）というコマンドのアルゴリズムの一例を示したものである。
Ｓ１は、フルパスサブルーチンを使って引数からフルパスを得るステップである。ここでは例えば、図６で説明したアルゴリズムを用いることができる。Ｓ２は、操作対象となる全てのファイル及びディレクトリを候補として選択するステップである。ルール１もルール２も適用しないリスト表示コマンドであれば、ここで選択された全てのファイル及びディレクトリを表示すればコマンドはこの時点で終了する。
Ｓ３は、どの候補ディレクトリにも属していないファイルは必ず表示させなければならないので、これを表示するステップである。Ｓ４は、どの候補ディレクトリにも属していないディレクトリの有無を判定するステップであり、「有り」の場合は表示して候補ディレクトリから外すステップ９にジャンプする。
Ｓ５は、候補ファイルの有無を判定するステップであり、「有り」の場合は任意の一つの候補ファイルを対象ファイルとするステップＳ７にジャンプする。「なし」の場合は、候補ディレクトリを任意に一つ選択し、ステップ９にジャンプする。
Ｓ８は、対象ファイルを候補ファイルから除外して、候補ディレクトリから除外された対象ファイルの親ディレクトリを任意に一つ選択するステップである。この後、Ｓ９に移行し選択したディレクトリを表示して候補ディレクトリから除外する。
Ｓ１０は、表示したディレクトリに属している候補ファイルと候補ディレクトリを候補から外すステップ、Ｓ１１は、候補ファイルの有無を判定するステップである。「有り」の場合はＳ３にジャンプし、「なし」の場合は候補ディレクトリの有無を判定するステップＳ１２に移行する。候補ディレクトリ「有り」の場合はＳ４にジャンプし、「なし」の場合は終了する。
なお、ルール１のみを適用する場合、Ｓ９，Ｓ１０のかっこ部分及びＳ１２をスキップすればよい。
なお、以上の説明においてコマンド名はＯＳにより異なる場合もありうるが、本発明はＯＳによらず実現できる新規なファイル管理システムの発明でありＯＳに依存しないことは既述のとおりである。
また、アルゴリズムは種々の方法が考えられるので、上述の例に限定されるものではない。
【００８１】
本実施形態による表示対象表示制限機能付きのリスト表示プログラムは、表示が制限されるだけで、操作対象からは除外されない。従って、表示制限がかけられたリスト表示コマンドｌｓを実行して操作対象として画面上に表示されなくても、操作対象に含まれていれば、表示されなかったファイル又はディレクトリを直接操作することができる。
【００８２】
（第６の実施例）
以上の実施形態では、コマンドベースで説明をしているが、ＧＵＩ（グラフィカルユーザーインターフェース）環境においてもそのまま利用することができる。具体的には、一つのウインドウをワーキングディレクトリとし、そのウインドウの中に、例えばｌｓコマンドで表示されるであろうファイル及びディレクトリ（フォルダ）のアイコンを表示するようにすればよい。また、絞り込みルールは、ポップアップメニューで選択するとよい。
ツリー表示も、ｌｓコマンドで説明した絞り込み（上述のルール１、２）を行うことにより、従来と違和感のない構造を表示できるし、基本コマンドも従来と同じようなファイル操作で行える。ただし、マウス操作だけでは、親子関係を無視したディレクトリの移動は難しいであろう。
【００８３】
（第７の実施例）
以上のファイル管理システムは、オペレーティングシステムそのものの基本ファイル管理システムとして利用する態様が考えられるだけでなく、多くのデータを扱うアプリケーションソフトに利用することができる。例えば、デジタルデータで記録された画像や音楽データ等を加工・管理するプログラム、ホームページ作成支援プログラム、年賀状等はがき作成プログラム、名刺管理プログラム、ＣＡＤプログラム、通信プログラム、ナビゲーションプログラム、行政等の情報公開サービス関連のプログラム等に利用することができる。
【００８４】
（第８の実施例）
以上の本発明に係るファイル管理システムは、一般の計算機のファイル管理システムとしてだけでなく、データをファイルとして記憶して分類整理するデータサーバ、ビデオサーバ又はデータバックアップ装置などの情報処理装置のファイル管理システムとしても利用することができる。
【産業上の利用可能性】
【００８５】
以上のように、本発明に係るファイル管理システムによると、従来の計算機におけるファイル管理システムのように、エイリアス或いはシンボリックリンクを定義したり、仮想ディレクトリを作成したり、色を付けたり、メモ書きを付けたり、検索のためのキーワードを与えたりなどの付加的な操作なしに、ディレクトリ名とファイル名だけによる従来と変わらない操作だけで、より簡単、便利かつ自然なファイルの分類、整理ができるファイル管理システムを実現できる。特に、本システムは、オペレーティングシステムや種々のアプリケーションプログラムのファイル管理システムとして利用でき、さらに、一般の計算機のファイル管理システムとしては勿論、種々の情報処理装置のファイル管理システムとして有用である。
【図面の簡単な説明】
【００８６】
【図１】図１は、本発明に係るネットワーク構造のファイル管理システムの一例を示した図である。
【図２】図２（ａ）は、本発明に係るファイル管理システムにおいて、ワーキングディレクトリが［／ｄｏｃ／ｇｏｌｆ］の状態を示した図、（ｂ）は、ワーキングディレクトリが［／ｄｏｃ］の状態を示した図である。
【図３】図３（ａ）は、本発明に係るファイル管理システムにおいて、ワーキングディレクトリが［／ｄｏｃ／ｇｏｌｆ／ｔｅｎｎｉｓ］の状態を示した図である。（ｂ）は、本発明に係るファイル管理システムにおいてディレクトリを作るコマンド（ｍｋｄｉｒ）を説明するための図である。
【図４】図４は、本発明に係るファイル管理システムにおいてディレクトリを削除するコマンド（ｒｍｄｉｒ）を説明するための図である。
【図５】図５は、ｌｓコマンドにおいて、ルール１及びルール２を適用する一例を示した図である。
【図６】図６は、引数からフルパスを得るためのサブルーチンを説明するための図である。
【図７】図７は、ルール１及びルール２を適用したｌｓコマンドのアルゴリズムの一例を示したものである。
【図８】図８（ａ）は、従来の簡単なツリー構造のファイル管理システムを例示したものである。（ｂ）は、簡単なツリー構造のファイル管理システムを例示した他の例である。
【図９】図９は、従来のツリー構造（木構造）のファイル管理システムを説明するための図である。
【図１】
0003714479.tif 000002
【図２】
0003714479.tif 000003
【図３】
0003714479.tif 000004
【図４】
0003714479.tif 000005
【図５】
0003714479.tif 000006
【図６】
0003714479.tif 000007
【図７】
0003714479.tif 000008
【図８】
0003714479.tif 000009
【図９】
0003714479.tif 000010