(57)【要約】  シンビアン（登録商標）ＯＳのアプリケーションは、シンビアンにより規定されたディレクトリ構造を前提とし、ドライブのルートから始まる標準ディレクトリ群を規定する。これは、メモリースティック（登録商標）の規格と互換性がない。提供される方法は、標準のSymbianのドライブのように見えるが、実際には、メモリースティック（登録商標）の安全な領域に透過的にマップするドライブを有するアプリケーションを提供する。更に、メモリースティック（登録商標）が規定する特別なルートディレクトリ（例えば、写真及び音声に対する）にアクセスすることが可能であり、これらのディレクトリを標準のシンビアン形式のディレクトリにマップすることが可能である。【特許請求の範囲】
【請求項１】
第１のディレクトリの階層を有するオペレーティングシステム上で実行されるアプリケーションにより、取り外し可能な記憶媒体に格納されたファイルへのアクセスを可能ならしめる方法であって、
（ａ）前記アプリケーションが、前記第１のディレクトリの階層に準拠するパスと共にファイル要求を送信するステップと、
（ｂ）前記ファイル要求中の前記パスが、第２のディレクトリの階層に準拠する同等のパスに変換されるステップとを含む方法。
【請求項２】
前記記憶媒体は、装置から取り外し可能であり、かつメモリースティック（登録商標）の規格に準拠する記憶媒体である請求項１記載の方法。
【請求項３】
前記変換は、前記アプリケーションが前記変換または前記第２のディレクトリの階層の存在を認識することなく、自動的に発生する請求項２記載の方法。
【請求項４】
前記変換は、ドライブのルートに対するファイル要求のパスに追加のパスを接頭語として付加することにより実行され、前記第２のディレクトリ階層に準拠することを保証する請求項１記載の方法。
【請求項５】
前記変換は、ファイル要求のパスの所定の接頭語を認識し、スキップすることにより実行され、前記第２のディレクトリの階層に準拠することを保証する請求項１記載の方法。
【請求項６】
前記所定の接頭語の認識及びスキップは、前記所定の接頭語が最初に出現した時にパス毎に１度だけ行なわれる請求項５記載の方法。
【請求項７】
前記追加のパスの接頭語としての付加は、元のパスのストリングを実際に変更するのではなく、前記第２のディレクトリの階層の非ルートディレクトリにおいてパスの検索を開始することにより実行される請求項４記載の方法。
【請求項８】
前記変換は、前記オペレーティングシステムにより使用される前記ディレクトリの階層に準拠する存在しないディレクトリを、前記第２のディレクトリの階層に準拠するディレクトリにマッピングすることにより実行される請求項１記載の方法。
【請求項９】
前記マッピングは、ファイル交換を可能にする請求項８記載の方法。
【請求項１０】
前記第２のディレクトリの階層に準拠する前記ディレクトリは、ルートディレクトリである請求項９記載の方法。
【請求項１１】
実行されるアプリケーションが記憶媒体に格納されたファイルにアクセスできるようにプログラムされるポータブルコンピューティングデバイスであって、
前記アプリケーションは、前記デバイスオペレーティングシステムにより使用されるディレクトリの階層に準拠するパスと共にファイル要求を送信し、
前記デバイスは、前記ファイル要求の前記パスを、前記記憶媒体により使用される第２のディレクトリの階層に準拠する同等のパスに変換するように更にプログラムされ、
前記第２のディレクトリの階層は、前記第１のディレクトリの階層と互換性がないデバイス。
【請求項１２】
オペレーティングシステムに対する、既知のサポートされた階層の体裁を生成することにより、所定の階層に準拠するように設計されていない又は準拠することが要求されていない前記オペレーティングシステム上において、前記所定の階層を有する記憶媒体を使用できる方法。
【請求項１３】
前記記憶媒体は、ＦＡＴ又はＦＡＴ３２ファイルシステムを使用する請求項１記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーティングシステム上で実行されるアプリケーションが、取り外し可能な記憶媒体に格納されたファイルにアクセスできる方法に関する。オペレーティングシステム及び記憶媒体は、互換性のないディレクトリの階層を使用する。
【背景技術】
【０００２】
シンビアン（登録商標）ＯＳのアプリケーションは、ドライブのルートから始まる標準ディレクトリ群を含むようにシンビアンリミテッドにより規定されたディレクトリ構造を前提とする。しかし、これは、取り外し可能なメモリドライブについてソニー株式会社が規定したメモリースティック（登録商標）の規格と互換性がない。更に詳細には、シンビアン（登録商標）ＯＳは、多数の標準の場所を含む取り外し可能なドライブ上にディレクトリ構造を規定する。最も基本的なものは、以下のものである。
【０００３】
\
\System
\System\Apps
\System\Libs
\System\Data
\Documents。
【０００４】
これらのうちの一部が存在してもよい。また、これらのうちの一部が、サブディレクトリを更に含んでもよい。例えば、インストールされたアプリケーションは、アプリケーションの名前をとって名前が付けられる\System\Appsより下位のディレクトリに配置される。他の種々の標準ディレクトリが存在する。
【０００５】
これに対し、メモリースティック（登録商標）は、以下のような階層を規定する。
【０００６】
\DCIM
\HiF、
\MSXXX\...
\MSYYY\...
メモリースティック（登録商標）の規格が、規定されたルートサブディレクトリのみがルートに配置されてもよいことを示していることが重要である。規格の一部ではなく、装置に固有である全てのデータは、MSXXX／MSYYYサブディレクトリのいずれかに配置される必要がある。ここで、「XXX」及び「YYY」は、ソニーに登録された文字列であり、装置又は製造者に固有である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
シンビアン（登録商標）ＯＳはルートから始まるディレクトリの階層を規定するが、メモリースティック（登録商標）の規格はルート内において非標準ディレクトリを許可しないため、これらは互換性がないことが明らかである。メモリースティック（登録商標）の規格に準拠するため、シンビアン（登録商標）ＯＳの階層は、MSXXXサブディレクトリ内に存在する必要があるだろう。しかし、全てのシンビアン（登録商標）ＯＳのコード（全てでなくても、ほぼ全てのサードパーティコードを含む）は、ルートディレクトリ構造を前提として書かれており、メモリースティック（登録商標）に準拠するディレクトリ構造を使用するための変更は、容易には行えない。
【０００８】
メモリースティック（登録商標）の階層に準拠するように、全てのシンビアン（登録商標）ＯＳのアプリケーションを変更することは、大変な労力を要し、回避されることが好ましい。その変更が行なわれる場合でも、不正なルートディレクトリを作成する可能性のある「不正者」が存在しないことを確認するのは難しいだろう。
【０００９】
タイトルが「A method and apparatus for virtualizing file access operations and other I/O operations」である、ヒューレットパッカード社により出願された欧州特許出願第ＥＰ１１２２６４７Ａ２号において、アプリケーションが認識する媒体階層が別のファイルシステムにマッピングされる方法が説明されている。しかし、これは、媒体のディレクトリの階層を互換性のないものとすることには関連がなく、また、これら階層を修正変更することもできない。この相互操作性が、本発明の基礎である。
【課題を解決するための手段】
【００１０】
本発明の第１の面において、第１のディレクトリの階層を有するオペレーティングシステム上で実行されるアプリケーションにより、前記第１のディレクトリの階層と互換性のない第２のディレクトリの階層を使用する取り外し可能な記憶媒体に格納されたファイルへのアクセスを可能ならしめる方法は、
（ａ）前記アプリケーションが、前記第１のディレクトリの階層に準拠するパスと共にファイル要求を送信するステップと、
（ｂ）前記ファイル要求の前記パスが、前記第２のディレクトリの階層に準拠する同等のパスに変換されるステップとを含む。
【００１１】
この方法により、アプリケーションのファイル要求における全てのパスを、記憶媒体が必要とする同等のパスにマップ又は変換できる。従って、シンビアン（登録商標）ＯＳの規格に準拠するパスは、メモリースティック（登録商標）のパスに透過的にマッピングされる。アプリケーションが、行われた変換を認識しない点において「透過的」である。アプリケーションは、ＯＳにより命令された標準の階層のみを認識する。更に、変換は、オペレーティングシステムのファイルサーバ構成要素に対しても透過的である。従来技術のシステムは、特定のディレクトリ階層を有するＯＳ上で実行されるアプリケーションが、互換性のない異なるディレクトリの階層を使用する取り外し可能なドライブに保持されたファイルにアクセスできるようにするという課題に対処していない。その代わり、ファイル要求を仮想アドレスから物理アドレスに変換することを取り扱うが、双方のアドレスは、同一のディレクトリの階層に常に準拠している必要がある。
【００１２】
本発明の第２の面は、実行されるアプリケーションが取り外し可能な記憶媒体に格納されたファイルにアクセスできるようにプログラムされるポータブルコンピューティングデバイスである。前記アプリケーションは、前記デバイスオペレーティングシステムにより使用されるディレクトリの階層に準拠するパスと共にファイル要求を送信する。前記デバイスは、前記ファイル要求の前記パスを前記記憶媒体により使用される第２のディレクトリの階層に準拠する同等のパスに変換するように更にプログラムされる。前記第２のディレクトリの階層は、前記第１のディレクトリの階層と互換性がない。
【発明を実施するための最良の形態】
【００１３】
スマートフォン及び他の無線情報装置のオペレーティングシステムであるシンビアン（登録商標）ＯＳに対する実現例を参照して、本発明について説明する。この実現例では、シンビアン（登録商標）ＯＳ上で実行されるように書かれ、シンビアン（登録商標）ＯＳにより管理されるファイルの階層を使用するアプリケーションが、メモリースティック（登録商標）は全く異なるディレクトリの階層を使用するにも関わらず、メモリースティック（登録商標）記憶媒体を使用できる。
【００１４】
＜ルート再マッピング＞
標準のシンビアンの階層であるように見えるが、実際は、メモリースティック（登録商標）のルートから外れた場所に位置付けられるドライブ（ドライブＤとする）を、アプリケーションが認識することが必要である。更に、アプリケーションは、メモリースティック（登録商標）の実際のルートを直接認識すべきではないが、ルートは、アプリケーションで何らかの方法により利用可能である必要がある。
【００１５】
理論上、ドライブＤを参照する全てのパスに対して、ルートオフセットと呼ばれる追加のパスを接頭語として自動的に付加する。このルートオフセットは、Ｄドライブ上のデータが実際に存在するメモリースティック（登録商標）上の場所と同一である。これは完全に透過的に起こり、アプリケーションはその変更を認識しない。
【００１６】
尚、変換は、第３のストリングを形成するために２つのストリングを連結する必要はない。しかし、これは効果的な動作である。
【００１７】
例えば、ソニーに登録されたルートディレクトリがMSSymbianである場合を考える。ドライブＤ上のシンビアンの階層が実際にMSSymbianディレクトリ内に配置されることを必要とする。理論上、ストリング「\MSSymbian」が、ドライブＤにアクセスする全てのパスの先頭に追加される。
【００１８】
例えば、以下のディレクトリ構造を有するメモリースティック（登録商標）を取り上げる。
【００１９】
\
\DCIM
\HiFi
\MSSymbian
\MSSymbian\System
\MSSymbian\Documents
アプリケーションが「D:\*」のディレクトリ一覧を要求する場合、ファイルシステムは、これを「D:\MSSymbian\*」に内部で変換し、以下の結果を与える。
【００２０】
\System
\Documents
これらは、アプリケーションが期待した通りの標準のシンビアンのレイアウトである。尚、アプリケーションに対しては、これがドライブのルートであるように見えるが、実際にはルートではない。
【００２１】
アプリケーションがディレクトリ「\Documents\MyFiles」を作成する場合、これは、ファイルシステムにより「\MSSymbian\Documents\MyFiles」に変換される。
【００２２】
概念上、ストリング「\MSSymbian」は、ファイルシステムに渡される全てのストリングに接頭語として付加される。実際には、これが、異なる方法で実現されてもよい。例えば、全ての名前の探索をルートではなくMSSymbianディレクトリから開始することは、より効率的であるだろう。しかし結果は同一である。
【００２３】
従って、これは、アプリケーションがシンビアンの階層を使用し続けることを可能にするが、メモリースティック（登録商標）の規格に準拠させる。
【００２４】
＜ルートへのアクセス−マジックディレクトリ＞
上述のルートオフセットの方法は、ルートを完全に隠蔽する。アプリケーションの中には、メモリースティック（登録商標）を認識するものもある（すなわち、アプリケーションは、メモリースティック（登録商標）の構造を理解し、規格で規定された標準の交換ディレクトリのいくつかにアクセスしようとする）。ルートへのアクセスを許可するために、「マジック」ディレクトリ、\System\MSROOTが提供される。これは、理論上、マジックディレクトリがファイルシステムに渡される全てのパスから取り除かれるため、ルートオフセットとは正反対である。
【００２５】
従って、例えば、アプリケーションは、メモリースティック（登録商標）の\DCIMディレクトリ（画像に対する）にアクセスしたい場合、パス「\System\MSROOT\DCIM」を使用する。その後、ファイルシステムは、理論上、マジック接頭語「\System\MSROOT」をそのパスから取り除き（すなわち、スキップし）、所期の目標ディレクトリ「\DCIM」を残す。
【００２６】
アプリケーションが実際のメモリースティック（登録商標）の階層を参照することを許可するのではなく、この方法でルートへのアクセスを提供する理由は、その階層に準拠させるためである。全てのメモリースティック（登録商標）のルートが、例えば、別のドライブ名で可視状態であると仮定した場合、アプリケーションは、そのドライブにファイル及びディレクトリを作成することにより、メモリースティック（登録商標）の仕様に意図せず違反する可能性がある。
【００２７】
＜既存ファイル又は既存ディレクトリの置換＞
マジックディレクトリは、実際には、メモリースティック（登録商標）上に存在しない。従って、メモリースティック（登録商標）が実際のファイル又はディレクトリ\MSSymbian\System\MSROOTを保持する場合、マジックディレクトリは、それを隠蔽する。
【００２８】
\System\MSROOTと呼ばれる実際のファイル／ディレクトリの存在は、「マジック」ディレクトリの動作に干渉しない。これは、マジックディレクトリが完全にファイル内で処理され、メモリースティック（登録商標）上の内容を参照することなく、変換が行なわれるためである。
【００２９】
しかし、ユーザは、このファイル／ディレクトリにアクセスすることを必要とする可能性がある。これは以下の２つの方法でも可能である。
（ａ）「部分循環参照」\System\MSROOT\MSSymbian\System\MSROOTを使用する。これは、メモリースティック（登録商標）上のユーザのファイル／ディレクトリ\MSSymbian\System\MSROOTにマップされる。これは、可能な循環参照のうち１回の循環参照を要求するため、不都合な実装例である。以下の循環参照の説明を参照のこと。
（ｂ）メモリースティック（登録商標）で使用されるＦＡＴファイルシステム上では、ファイル名の大文字と小文字とは区別されないということの利点を利用することが好ましい方法である。マジックディレクトリが、大文字と小文字とを区別すると規定する場合、\System\MSROOTを使用することにより、マジックのルートへの再マッピングが実行されるが、\System\msroot、\System\MSRoot、\system\MSROOT等、その他の場合は、メモリースティック（登録商標）上に存在する実際のファイル／ディレクトリが与えられる。
【００３０】
＜循環参照＞
理論上、変換を繰り返し行ない、循環参照を引き起こすことが可能である。例えば、パス\System\MSROOT\MSSymbian\System\MSROOT\MSSymbian\fredは、\fredと同一である。
【００３１】
これを許可する場合、以下のことが問題となる。
１．ファイルが別名を有することを許可する−すなわち、１つのファイルを２つ以上の名前でアクセスできる。これは、別名を異なるファイルとして認識する可能性がある上位層において、ファイル共有及びロック動作に対して深刻な問題を与える。
２．無限ループを招く可能性がある−例えば、ファイルブラウザアプリケーションが循環参照を永久に続ける場合である。
【００３２】
これを防止するため、循環参照が発生しないように、変換を１度だけ行なう。例えば、パス「\System\MSROOT\MSSymbian\System\MSROOT」は循環参照であるように見えるが、実際は、ファイルシステムがマジックパスの最初の発生部分のみを変換し、「\MSSymbian\System\MSROOT」を残す。「\MSSymbian\System\MSROOT」は、存在しないか、あるいは、メモリースティック（登録商標）上の既存のファイル又は既存のディレクトリを参照するかのいずれかである。
【００３３】
アプリケーションが\System\MSROOTマジックディレクトリを介してシンビアンのルート\MSSymbianを循環参照することを防止する必要がある。例えば、ファイル\fred.txtと\System\MSROOT\MSSymbian\fred.txtとは同一であるが、上述の問題を引き起こす可能性がある。従って、MSSymbianディレクトリへのアクセスは、ルートオフセット機構の手段以外では、常に拒否される。この結果、この例においては、\System\MSROOT\MSSymbian\fred.txtへのアクセスの試みに対しては、アクセスが拒否されたこと、又は、同様に事実上ファイルが見付からなかったことを示すエラーが返されるだろう。
【００３４】
＜ディレクトリ一覧＞
一般に、ディレクトリ一覧は、一字一句そのまま返されるメモリースティック（登録商標）上の真のディレクトリを結果として得る変換を使用して、通常通り処理される。アプリケーションが認識する全てのディレクトリの内容は、\System\*及び\System\MSROOT\*の２つの特別な場合を除いて、メモリースティック（登録商標）上のディレクトリの内容と同一である。尚、\System\*は、MSROOTマジックディレクトリを含み、\System\MSROOT\*は、メモリースティック（登録商標）のルートであり、アプリケーションから見たルートであるMSSymbianディレクトリを含む。これら２つの場合は、特別に処理される必要がある。
【００３５】
ドライブを探索するアプリケーションがマジックディレクトリ\System\MSROOTに誤って迷い込み、メモリースティック（登録商標）の規格に準拠しないルートにファイルを誤って作成することを回避するため、マジックディレクトリは、\Systemディレクトリの内容の一覧に表示されない。メモリースティック（登録商標）を認識するアプリケーションは、ルートにアクセスするために\System\MSROOTを使用すべきであることを理解しているだろう。このことを認識していないアプリケーションは、ディレクトリ一覧にマジックディレクトリを見付けられないため、強制されるシンビアン（登録商標）ＯＳのディレクトリ構造を誤って無視してしまうことはないだろう。
【００３６】
同様に、上述のように、別名を回避するため、マジックディレクトリを介してMSSymbianの内容に循環アクセスすることを防止する必要がある。一貫性を維持するための最良の実現例は、メモリースティック（登録商標）のルートの一覧からMSSymbianを隠蔽し、\System\MSROOT\MSSymbianで始まるパスを使用するアプリケーションによる試みに対して、「not found」エラーを返すことである。
【００３７】
（尚、アプリケーションがMSROOTディレクトリの存在を理解している必要があることは、この方法の目的と矛盾するものではない。これは、アプリケーションがメモリースティック（登録商標）の内容の処理方法についても理解している必要があり、従って、そのアプリケーションはメモリースティック（登録商標）を認識しない「標準」のSymbianのアプリケーションではないからである。）
＜標準ディレクトリのエミュレート−ゴースティング＞
更なる拡張は、特にメモリースティック（登録商標）を認識しないアプリケーションがメモリースティック（登録商標）の特別なディレクトリのファイルにアクセスできるように、存在しない「ゴースト」ディレクトリを提供することである。ファイルを通常\Documents\Pictures\...に格納する写真ビューアプリケーションを例として取り上げる。このディレクトリはその下位に、例えば「My Snaps」、「Holiday」等、ユーザにより名前が付けられる多数のサブディレクトリを有する。
【００３８】
ファイルシステムは、別の「マジック」ディレクトリを提供できるが、ここでは、ルートディレクトリのうち１つをシンビアンの階層内のディレクトリにマップする。すなわち、ルートディレクトリのゴーストである。
【００３９】
従って、写真ビューワの例の場合、メモリースティック（登録商標）のルートの\DCIMに実際にマッピングする新しいゴーストディレクトリ\Documents\Pictures\MemoryStickを作成できるだろう。この場合のファイルシステムは、事実上、ゴーストディレクトリ名を実際の名前で置換する。
【００４０】
アプリケーションは、Picturesディレクトリのディレクトリ一覧を実行すると、以下のものを認識する。
【００４１】
My Snaps
Holiday
MemoryStick
また、アプリケーションは、参照する写真を見つけられる場所として「MemoryStick」を表示する。\Documents\Pictures\MemoryStick\*のディレクトリ一覧は、ファイルシステムにより\DCIM\*に事実上変換され、メモリースティック（登録商標）のDCIMルートディレクトリの内容を返す。写真ビューワは、任意のファイルを開くことができ、同様の置換が行なわれることにより、アプリケーションは、予想した場所のファイルにアクセスできる。しかし、ファイルは、実際には、メモリースティック（登録商標）上の他の場所に存在する。
【００４２】
＜ストリング連結又はストリング操作なしのマッピング＞
上述の動作の最も単純な実現例において、アプリケーションにより提供されたパスは、パスの部分を取り除く、追加する、又は変更することにより変更される。その結果のパスは、ディレクトリ参照を実行するのに使用される。
【００４３】
例えば、ルートオフセットは、ルートオフセットを元のアプリケーションのパスと連結することにより実現され、その結果として得られる組み合わされたパスを作成できる。
【００４４】
これは、単純だが、非効率的ある。ファイルシステムにおけるディレクトリ参照の開始位置を変更することが、より適切な実現例である。
【００４５】
参照の実行方法を考える。以下の内容の媒体を取り上げる。
【００４６】
\
\Documents
\accounts.doc
\info.doc
\Pictures
\Holiday
\landscape.jpg
\tree.jpg。
【００４７】
アプリケーションは、ファイル\Pictures\Holiday\landscape.jpgを開くことを要求する。これは、実質的に再帰動作である。ここで、パスの各構成要素が、ディレクトリ階層を下位方向に横切りながら考慮される。従って、ステップ１は、ルートディレクトリにおいてエントリ「Pictures」を探索することである。見つかると、ステップを１つ進み、Picturesにおいてエントリ「Holiday」を探索する。また更に１つ進み、Holidayにおいてエントリ「landscape.jpg」を見付ける。
【００４８】
ここで、以下のように、階層がメモリースティック（登録商標）上に存在する場合を考える。
【００４９】
\
\MSSymbian
\Documents
\accounts.doc
\info.doc
\Pictures
\Holiday
\landscape.jpg
\tree.jpg。
【００５０】
単純なストリング操作のバージョンにおいて、アプリケーションのパス\Pictures\Holiday\landscape.jpgが、\MSSymbian\Pictures\Holiday\landscape.jpgに変換され、上述のように、探索は、ルートの「MSSymbian」の探索から開始する。
【００５１】
しかし、ストリング操作及びルートにおける最初の探索は、労力及び時間の浪費である。全てのエントリがMSSymbianのサブディレクトリ内に存在することが分かっているため、ルートにおける探索を実行する必要はない。従って、アプリケーションのパスを変更せずに、探索をMSSymbianから開始することが、より効率的な実現例であろう。探索のステップは、MSSymbianにおいてエントリ「Pictures」を探索することから開始し、Holiday中の「landscape.jpg」まで進む。
【００５２】
ルートにリダイレクトするマジックディレクトリは、パスの中のマジックトークンを識別し、それをスキップすることにより処理され、探索はルートから開始される。例えば、アプリケーションが\System\MSROOT\DCIMを渡すと、マジックトークン「\System\MSROOT」が認識され、スキップされる。探索は、ルート中のエントリ「DCIM」を見つけることから開始する。
【００５３】
ゴーストディレクトリの場合、リダイレクションのトークンがパス内のいずれかの場所に現れるため、更に複雑である。従って、これは、ストリング置換を使用して、更に好適に実現されるだろう。
【手続補正書】
【提出日】平成17年9月15日(2005.9.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のディレクトリの階層を有するオペレーティングシステム上で実行されるアプリケーションにより、取り外し可能な記憶媒体に格納されたファイルへのアクセスを可能ならしめる方法であって、
（ａ）前記アプリケーションが、前記第１のディレクトリの階層に準拠するパスと共にファイル要求を送信するステップと、
（ｂ）前記ファイルシステムが、前記ファイル要求により規定される開始場所とは異なる前記第２のディレクトリの階層内の場所から、前記ファイルの探索を開始するステップとを含む方法。
【請求項２】
接頭語は前記元のファイル要求に付加され、前記ファイルシステムは、前記第２のディレクトリの階層で前記探索が開始する場所を変更するように、前記接頭語を解釈する請求項１記載の方法。
【請求項３】
前記ファイルシステムは、前記第１のディレクトリの階層のレイアウトに準拠する前記第２のディレクトリの階層の一覧を提供するように、又はアクセスが拒否されるべき前記第２の階層の部分を隠蔽するように、前記探索の間、前記第２のディレクトリの階層の部分を除去する請求項１記載の方法。
【請求項４】
前記記憶媒体は、装置から取り外し可能であり、かつメモリースティック（登録商標）の規格に準拠する記憶媒体である請求項１記載の方法。
【請求項５】
前記探索の開始場所を認識するステップは、前記アプリケーションがそのステップまたは前記第２のディレクトリの階層の存在を認識することなく、自動的に発生する請求項１記載の方法。
【請求項６】
前記探索の開始場所は、前記第２のディレクトリの階層のルートではない請求項１記載の方法。
【請求項７】
前記探索の開始場所を認識するステップは、ファイル要求のパスの所定の接頭語を認識し、スキップすることにより実行され、前記第２のディレクトリの階層に準拠することを保証する請求項１記載の方法。
【請求項８】
前記所定の接頭語の認識及びスキップは、前記所定の接頭語が最初に出現した時にパス毎に１度だけ行なわれる請求項７記載の方法。
【請求項９】
前記探索の開始場所を認識するステップは、前記オペレーティングシステムにより使用される前記ディレクトリの階層に準拠する存在しないディレクトリを、前記第２のディレクトリの階層に準拠するディレクトリにマッピングすることにより実行される請求項１記載の方法。
【請求項１０】
前記マッピングは、ファイル交換を可能にする請求項９記載の方法。
【請求項１１】
前記第２のディレクトリの階層に準拠する前記ディレクトリは、ルートディレクトリである請求項１０記載の方法。
【請求項１２】
実行されるアプリケーションが記憶媒体に格納されたファイルにアクセスできるようにプログラムされるポータブルコンピューティングデバイスであって、
前記アプリケーションは、前記デバイスオペレーティングシステムにより使用されるディレクトリの階層に準拠するパスと共にファイル要求を送信し、
前記デバイスは、前記ファイル要求中の前記パスの探索を、前記記憶媒体により使用される第２のディレクトリの階層に含まれる場所から開始するように更にプログラムされ、
前記第２のディレクトリの階層は、前記第１のディレクトリの階層と互換性がないデバイス。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーティングシステム上で実行されるアプリケーションが、取り外し可能な記憶媒体に格納されたファイルにアクセスできる方法に関する。オペレーティングシステム及び記憶媒体は、互換性のないディレクトリの階層を使用する。
【背景技術】
【０００２】
シンビアン（登録商標）ＯＳのアプリケーションは、ドライブのルートから始まる標準ディレクトリ群を含むようにシンビアンリミテッドにより規定されたディレクトリ構造を前提とする。しかし、これは、取り外し可能なメモリドライブについてソニー株式会社が規定したメモリースティック（登録商標）の規格と互換性がない。更に詳細には、シンビアン（登録商標）ＯＳは、多数の標準の場所を含む取り外し可能なドライブ上にディレクトリ構造を規定する。最も基本的なものは、以下のものである。
【０００３】
\
\System
\System\Apps
\System\Libs
\System\Data
\Documents。
【０００４】
これらのうちの一部が存在してもよい。また、これらのうちの一部が、サブディレクトリを更に含んでもよい。例えば、インストールされたアプリケーションは、アプリケーションの名前をとって名前が付けられる\System\Appsより下位のディレクトリに配置される。他の種々の標準ディレクトリが存在する。
【０００５】
これに対し、メモリースティック（登録商標）は、以下のような階層を規定する。
【０００６】
\DCIM
\HiF、
\MSXXX\...
\MSYYY\...
メモリースティック（登録商標）の規格が、規定されたルートサブディレクトリのみがルートに配置されてもよいことを示していることが重要である。規格の一部ではなく、装置に固有である全てのデータは、MSXXX／MSYYYサブディレクトリのいずれかに配置される必要がある。ここで、「XXX」及び「YYY」は、ソニーに登録された文字列であり、装置又は製造者に固有である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
シンビアン（登録商標）ＯＳはルートから始まるディレクトリの階層を規定するが、メモリースティック（登録商標）の規格はルート内において非標準ディレクトリを許可しないため、これらは互換性がないことが明らかである。メモリースティック（登録商標）の規格に準拠するため、シンビアン（登録商標）ＯＳの階層は、MSXXXサブディレクトリ内に存在する必要があるだろう。しかし、全てのシンビアン（登録商標）ＯＳのコード（全てでなくても、ほぼ全てのサードパーティコードを含む）は、ルートディレクトリ構造を前提として書かれており、メモリースティック（登録商標）に準拠するディレクトリ構造を使用するための変更は、容易には行えない。
【０００８】
メモリースティック（登録商標）の階層に準拠するように、全てのシンビアン（登録商標）ＯＳのアプリケーションを変更することは、大変な労力を要し、回避されることが好ましい。その変更が行なわれる場合でも、不正なルートディレクトリを作成する可能性のある「不正者」が存在しないことを確認するのは難しいだろう。
【０００９】
タイトルが「A method and apparatus for virtualizing file access operations and other I/O operations」である、ヒューレットパッカード社により出願された欧州特許出願第ＥＰ１１２２６４７Ａ２号において、アプリケーションが認識する媒体階層が別のファイルシステムにマッピングされる方法が説明されている。しかし、これは、媒体のディレクトリの階層を互換性のないものとすることには関連がなく、また、これら階層を修正変更することもできない。この相互操作性が、本発明の基礎である。また、欧州特許出願第ＥＰ１１２２６４７Ａ２号は、本発明とは異なるように構成され、既存のファイルシステム上に構成可能な層が存在する。これは、元の未変更のファイルシステムが依然として存在するため、元のファイルシステムにアクセス可能な任意のアプリケーション又はコードが再マッピングを無視できることを意味する。更に、再マッピングが構成されることを意図するため、再マッピングが不適切に構成される可能性、すなわち、不適切に再構成される可能性がある。この従来技術は、特に、ストリング置換による再マッピングを取り扱う。これは、最も効率的な方法ではなく、元のファイルシステム上の層として設計された結果である。
従来技術は、元のファイルシステムとそのファイルシステムのクライアントとの間に、上述のストリング置換モジュールを介在させる方法が存在する必要がある。更に、従来技術がファイルシステムのリソースを仮想化する目的に関しているのに対し、本発明は、異なるディレクトリ階層のルールを有する同一のファイルシステムの２つの実現例の間に相互操作性を提供することに関する。また、従来技術は、上述のように、ストリング置換により行なわれるマッピングが、ファイルに対する循環参照又はあいまい参照を引き起こす可能性について考慮していない。例えば、２つの異なる要求パスを使用して同一のファイルを開く必要がある場合、上位層のファイル共有制御コードは、それらのパスを同一ファイルとして認識しないため、適切な共有及びファイルへのアクセスに対する仲介制御を提供しないだろう。最後に、従来技術は、要求の種類に依存するあるパスのマッピングを条件付きで受け付けるか、拒否するか、又は隠蔽するかについて考慮していない（これについての本発明の検討方法及び理由の一例として、本発明において処理されるディレクトリ一覧の説明を参照）。
【課題を解決するための手段】
【００１０】
本発明の第１の面において、第１のディレクトリの階層を有するオペレーティングシステム上で実行されるアプリケーションにより、前記第１のディレクトリの階層と互換性のない第２のディレクトリの階層を使用する取り外し可能な記憶媒体に格納されたファイルへのアクセスを可能ならしめる方法は、
（ａ）前記アプリケーションが、前記第１のディレクトリの階層に準拠するパスと共にファイル要求を送信するステップと、
（ｂ）前記ファイルシステムが、前記ファイル要求により規定される開始場所とは異なる前記第２のディレクトリの階層内の場所から、前記ファイルの探索を開始するステップとを含む。
１つの実現例において、接頭語（本明細書において、「マジック」接頭語と呼ぶ）が、元のファイル要求に付加されてもよい。ファイルシステムは、第２のディレクトリの階層で探索が開始する場所を変更するように、このマジック接頭語を解釈する。接頭語の内容及び形式は、第１のディレクトリの階層または第２のディレクトリの階層の実際の探索場所との関係がなくてもよい。
ファイルシステムは、第１のディレクトリの階層のレイアウトに準拠する第２のディレクトリの階層の一覧を提供するように、又はアクセスが拒否されるべき第２の階層の部分を隠蔽するように、探索の間、第２のディレクトリの階層の部分を除去又は無視してもよい。
【００１１】
この方法により、ストリング置換を行わずに、アプリケーションのファイル要求における全てのパスを、記憶媒体が必要とする同等のパスにマップ又は変換できる。従って、シンビアン（登録商標）ＯＳの規格に準拠するパスは、メモリースティック（登録商標）のパスに透過的にマッピングされる。アプリケーションが、使用されるパス参照アルゴリズムを認識しない点において「透過的」である。アプリケーションは、ＯＳにより命令された標準の階層のみを認識する。更に、変換は、オペレーティングシステムのファイルサーバ構成要素に対しても透過的である。従来技術のシステムは、特定のディレクトリ階層を有するＯＳ上で実行されるアプリケーションが、互換性のない異なるディレクトリの階層を使用する取り外し可能なドライブに保持されたファイルにアクセスできるようにするという課題に対処していない。その代わり、ファイル要求を仮想アドレスから物理アドレスに変換することを取り扱うが、双方のアドレスは、同一のディレクトリの階層に常に準拠している必要がある。
【００１２】
本発明の第２の面は、実行されるアプリケーションが取り外し可能な記憶媒体に格納されたファイルにアクセスできるようにプログラムされるポータブルコンピューティングデバイスである。前記アプリケーションは、前記デバイスオペレーティングシステムにより使用されるディレクトリの階層に準拠するパスと共にファイル要求を送信する。前記デバイスは、前記ファイル要求中の前記パスの探索を、前記記憶媒体により使用される第２のディレクトリの階層に含まれる場所から開始するように更にプログラムされる。前記第２のディレクトリの階層は、前記第１のディレクトリの階層と互換性がない。
【発明を実施するための最良の形態】
【００１３】
スマートフォン及び他の無線情報装置のオペレーティングシステムであるシンビアン（登録商標）ＯＳに対する実現例を参照して、本発明について説明する。この実現例では、シンビアン（登録商標）ＯＳ上で実行されるように書かれ、シンビアン（登録商標）ＯＳにより管理されるファイルの階層を使用するアプリケーションが、メモリースティック（登録商標）は全く異なるディレクトリの階層を使用するにも関わらず、メモリースティック（登録商標）記憶媒体を使用できる。
【００１４】
＜ルート再マッピング＞
標準のシンビアンの階層であるように見えるが、実際は、メモリースティック（登録商標）のルートから外れた場所に位置付けられるドライブ（ドライブＤとする）を、アプリケーションが認識することが必要である。更に、アプリケーションは、メモリースティック（登録商標）の実際のルートを直接認識すべきではないが、ルートは、アプリケーションで何らかの方法により利用可能である必要がある。
【００１５】
理論上、ドライブＤを参照する全てのパスに対して、ルートオフセットと呼ばれる追加のパスを接頭語として自動的に付加する。このルートオフセットは、Ｄドライブ上のデータが実際に存在するメモリースティック（登録商標）上の場所と同一である。これは完全に透過的に起こり、アプリケーションはその変更を認識しない。
【００１６】
尚、最も効率的な変換方法ではないため、実際には、変換は、第３のストリングを形成するために２つのストリングを連結しない。しかし、これは効果的な動作を示す。
実際には、ファイルシステムは、クライアント要求が位置する目標ディレクトリ階層内の場所を認識するようにプログラムされる（ストリング連結又はストリング操作なしのマッピングというタイトルが付けられた最後の節を参照）。クライアント要求を処理する時、ファイルシステムは、要求されたパスの探索を目標ディレクトリ階層内の所定の場所から開始することにより、実際の目標ファイル又はディレクトリの位置を特定する。
ファイルシステムは、あるパスに対する要求を受信すると、全体のパスが走査されるまでパスの各要素を参照することにより、要求されたファイル又はディレクトリの位置を特定する。例えば、パス\Foo\Bar\file.txtは３つの要素を有する。第１のステップは、ディレクトリFooの位置を特定することである。第２に、Foo内のBarの位置を特定する。第３にBar内のFile.txtの位置を特定する。この時点で、全体のパスが処理され、結果としてfile.txtを得る。従来、パスの探索は、常に、ドライブのルートから開始する。しかし、本発明においては、要求されたパスの各要素の探索は、目標ディレクトリ階層内の他の場所から開始する。
【００１７】
例えば、ソニーに登録されたルートディレクトリがMSSymbianである場合を考える。ドライブＤ上のシンビアンの階層が実際にMSSymbianディレクトリ内に配置されることを必要とする。理論上、ストリング「\MSSymbian」が、ドライブＤにアクセスする全てのパスの先頭に追加される。
【００１８】
例えば、以下のディレクトリ構造を有するメモリースティック（登録商標）を取り上げる。
【００１９】
\
\DCIM
\HiFi
\MSSymbian
\MSSymbian\System
\MSSymbian\Documents
アプリケーションが「D:\*」のディレクトリ一覧を要求する場合、ファイルシステムは、理論上、これを「D:\MSSymbian\*」に変換し、以下の結果を与える。
【００２０】
\System
\Documents
これらは、アプリケーションが期待した通りの標準のシンビアンのレイアウトである。尚、アプリケーションに対しては、これがドライブのルートであるように見えるが、実際にはルートではない。
実際には、ファイルシステムは、ルートではなく所定のディレクトリ「\MSSymbian」から始まる要求されたパス「\」の参照の処理を開始する。
【００２１】
アプリケーションがディレクトリ「\Documents\MyFiles」を作成する場合、これは、ファイルシステムにより「\MSSymbian\Documents\MyFiles」に変換される。
【００２２】
概念上、ストリング「\MSSymbian」は、ファイルシステムに渡される全てのストリングに接頭語として付加される。実際には、これが、異なる方法で実現されてもよい。例えば、全ての名前の探索をルートではなくMSSymbianディレクトリから開始することは、より効率的であるだろう。しかし結果は同一である。
【００２３】
従って、これは、アプリケーションがシンビアンの階層を使用し続けることを可能にするが、メモリースティック（登録商標）の規格に準拠させる。
【００２４】
＜ルートへのアクセス−マジックディレクトリ＞
上述のルートオフセットの方法は、ルートを完全に隠蔽する。アプリケーションの中には、メモリースティック（登録商標）を認識するものもある（すなわち、アプリケーションは、メモリースティック（登録商標）の構造を理解し、規格で規定された標準の交換ディレクトリのいくつかにアクセスしようとする）。ルートへのアクセスを許可するために、「マジック」ディレクトリ、\System\MSROOTが提供される。これは、理論上、マジックディレクトリがファイルシステムに渡される全てのパスから取り除かれるため、ルートオフセットとは正反対である。
実際には、実現例は、マジックディレクトリに対するものであり、要求されたパスの探索が開始される所定の場所を変更する。この場合、マジックディレクトリが認識されると、ファイルシステムは、目標ディレクトリの階層のルートをパス参照の開始位置として使用し、要求されたパスのマジックディレクトリ要素をスキップする。
【００２５】
従って、例えば、アプリケーションは、メモリースティック（登録商標）の\DCIMディレクトリ（画像に対する）にアクセスしたい場合、パス「\System\MSROOT\DCIM」を使用する。その後、ファイルシステムは、理論上、マジック接頭語「\System\MSROOT」をそのパスから取り除き（すなわち、スキップし）、所期の目標ディレクトリ「\DCIM」を残す。
【００２６】
アプリケーションが実際のメモリースティック（登録商標）の階層を参照することを許可するのではなく、この方法でルートへのアクセスを提供する理由は、その階層に準拠させるためである。全てのメモリースティック（登録商標）のルートが、例えば、別のドライブ名で可視状態であると仮定した場合、アプリケーションは、そのドライブにファイル及びディレクトリを作成することにより、メモリースティック（登録商標）の仕様に意図せず違反する可能性がある。
【００２７】
＜既存ファイル又は既存ディレクトリの置換＞
マジックディレクトリは、実際には、メモリースティック（登録商標）上に存在しない。従って、メモリースティック（登録商標）が実際のファイル又はディレクトリ\MSSymbian\System\MSROOTを保持する場合、マジックディレクトリは、それを隠蔽する。
【００２８】
\System\MSROOTと呼ばれる実際のファイル／ディレクトリの存在は、「マジック」ディレクトリの動作に干渉しない。これは、マジックディレクトリが完全にファイルシステム内で処理されるためである。目標ディレクトリ階層において、パス「\System\MSROOT」の参照は、一切行なわれない。
【００２９】
しかし、ユーザは、このファイル／ディレクトリにアクセスすることを必要とする可能性がある。これは以下の２つの方法でも可能である。
（ａ）「部分循環参照」\System\MSROOT\MSSymbian\System\MSROOTを使用する。これは、メモリースティック（登録商標）上で\MSSymbian\System\MSROOTにマップされる。これは、マジックディレクトリの存在が、パス「\MSSymbian\System\MSROOT」の参照を目標ディレクトリ階層のルートから始めるからである。これは、可能な循環参照のうち１回の循環参照を要求するため、不都合な実装例である。以下の循環参照の説明を参照のこと。
（ｂ）メモリースティック（登録商標）で使用されるＦＡＴファイルシステム上では、ファイル名の大文字と小文字とは区別されないということの利点を利用することが好ましい方法である。マジックディレクトリが、大文字と小文字とを区別すると規定する場合、\System\MSROOTを使用することにより、目標ディレクトリ階層のルートから始まるようにパス参照が変更されるが、\System\msroot、\System\MSRoot、\system\MSROOT等、その他の場合は、目標内のデフォルトの所定位置から開始するため、メモリースティック（登録商標）上に存在する実際のファイル／ディレクトリが与えられる。
【００３０】
＜循環参照＞
ストリング置換の従来の方法を考える。変換を繰り返し行ない、循環参照を引き起こすことが可能である。例えば、パス\System\MSROOT\MSSymbian\System\MSROOT\MSSymbian\fredは、\fredと同一である。
【００３１】
これを許可する場合、以下のことが問題となる。
１．ファイルが別名を有することを許可する−すなわち、１つのファイルを２つ以上の名前でアクセスできる。これは、別名を異なるファイルとして認識する可能性がある上位層において、ファイル共有及びロック動作に対して深刻な問題を与える。
２．無限ループを招く可能性がある−例えば、ファイルブラウザアプリケーションが循環参照を永久に続ける場合である。
【００３２】
しかし、本発明においては、パス参照が１度だけ行なわれるため、これは発生しない。ファイルシステムは、「マジック」接頭語の有無から、探索を開始すべき場所を判定すると、要求パスの残りの部分に対して、目標ディレクトリの階層内で探索を１度行なう。例えば、パス「\System\MSROOT\MSSymbian\System\MSROOT」は循環参照であるように見えるが、実際は、ファイルシステムがマジックパスの最初の発生部分のみを考慮するため、ファイルシステムは残りのパス「\MSSymbian\System\MSROOT」の探索を目標ディレクトリの階層のルートから開始する。このパスは、存在しないか、あるいは、メモリースティック（登録商標）上の既存のファイル又は既存のディレクトリを参照するかのいずれかである。
【００３３】
しかし、これは、アプリケーションが\System\MSROOTマジックディレクトリを介してシンビアンのルート\MSSymbianを循環参照することを防止しない。例えば、ファイル\fred.txtと\System\MSROOT\MSSymbian\fred.txtとは同一であるが、上述の問題を引き起こす可能性がある。従って、特に、アプリケーションがMSSymbianにアクセスしようとすると、その要求は常に拒否される。そのディレクトリへのアクセスは、暗に、目標ディレクトリの階層内からパス探索を開始する機構を介してのみ許可される。この例においては、\System\MSROOT\MSSymbian\fred.txtへのアクセスの試みに対しては、アクセスが拒否されたこと、又は、同様に事実上ファイルが見付からなかったことを示すエラーが返されるだろう。
【００３４】
＜ディレクトリ一覧＞
一般に、ディレクトリ一覧は、一字一句そのまま返されるメモリースティック（登録商標）上の真のディレクトリを結果として得る変換を使用して、通常通り処理される。アプリケーションが認識する全てのディレクトリの内容は、\System\*及び\System\MSROOT\*の２つの特別な場合を除いて、メモリースティック（登録商標）上のディレクトリの内容と同一である。尚、\System\*は、MSROOTマジックディレクトリを含み、\System\MSROOT\*は、メモリースティック（登録商標）のルートであり、アプリケーションから見たルートであるMSSymbianディレクトリを含む。これら２つの場合は、特別に処理される必要がある。
【００３５】
ドライブを探索するアプリケーションがマジックディレクトリ\System\MSROOTに誤って迷い込み、メモリースティック（登録商標）の規格に準拠しないルートにファイルを誤って作成することを回避するため、マジックディレクトリは、\Systemディレクトリの内容の一覧に表示されない。メモリースティック（登録商標）を認識するアプリケーションは、ルートにアクセスするために\System\MSROOTを使用すべきであることを理解しているだろう。このことを認識していないアプリケーションは、ディレクトリ一覧にマジックディレクトリを見付けられないため、強制されるシンビアン（登録商標）ＯＳのディレクトリ構造を誤って無視してしまうことはないだろう。
【００３６】
同様に、上述のように、別名を回避するため、マジックディレクトリを介してMSSymbianの内容に循環アクセスすることを防止する必要がある。一貫性を維持するための最良の実現例は、メモリースティック（登録商標）のルートの一覧からMSSymbianを隠蔽し、\System\MSROOT\MSSymbianで始まるパスを使用するアプリケーションによる試みに対して、「not found」エラーを返すことである。
【００３７】
（尚、アプリケーションがMSROOTディレクトリの存在を理解している必要があることは、この方法の目的と矛盾するものではない。これは、アプリケーションがメモリースティック（登録商標）の内容の処理方法についても理解している必要があり、従って、そのアプリケーションはメモリースティック（登録商標）を認識しない「標準」のSymbianのアプリケーションではないからである。）
＜標準ディレクトリのエミュレート−ゴースティング＞
更なる拡張は、特にメモリースティック（登録商標）を認識しないアプリケーションがメモリースティック（登録商標）の特別なディレクトリのファイルにアクセスできるように、存在しない「ゴースト」ディレクトリを提供することである。ファイルを通常\Documents\Pictures\...に格納する写真ビューアプリケーションを例として取り上げる。このディレクトリはその下位に、例えば「My Snaps」、「Holiday」等、ユーザにより名前が付けられる多数のサブディレクトリを有する。
【００３８】
ファイルシステムは、別の「マジック」ディレクトリを提供できるが、ここでは、ルートディレクトリのうち１つをシンビアンの階層内のディレクトリにマップする。すなわち、ルートディレクトリのゴーストである。
これは、上述したように、単に「マジック」ディレクトリの機構であるが、パス参照の開始位置が、ルートから目標ディレクトリ階層内の他のディレクトリに変更されている。
【００３９】
従って、写真ビューワの例の場合、メモリースティック（登録商標）のルートの\DCIMからパス参照を実際に開始するゴーストディレクトリ\Documents\Pictures\MemoryStickに対して、新しい「マジック」識別子を作成できるだろう。この場合のファイルシステムは、理論上、ゴーストディレクトリ名を実際の名前で置換する。
【００４０】
アプリケーションは、Picturesディレクトリのディレクトリ一覧を実行すると、以下のものを認識する。
【００４１】
My Snaps
Holiday
MemoryStick
また、アプリケーションは、参照する写真を見つけられる場所として「MemoryStick」を表示する。\Documents\Pictures\MemoryStick\*のディレクトリ一覧は、ファイルシステムにより\DCIM\*に事実上変換され、メモリースティック（登録商標）のDCIMルートディレクトリの内容を返す。写真ビューワは、任意のファイルを開くことができ、同様の置換が行なわれることにより、アプリケーションは、予想した場所のファイルにアクセスできる。しかし、ファイルは、実際には、メモリースティック（登録商標）上の他の場所に存在する。
【００４２】
＜ストリング連結又はストリング操作なしのマッピング（本発明の要約）＞
本発明において、ファイルシステムにおけるディレクトリ参照の開始位置を変更する。これは、ストリング置換の必要性を回避する。
【００４３】
【００４４】
【００４５】
参照の実行方法を考える。以下の内容の媒体を取り上げる。
【００４６】
\
\Documents
\accounts.doc
\info.doc
\Pictures
\Holiday
\landscape.jpg
\tree.jpg。
【００４７】
アプリケーションは、ファイル\Pictures\Holiday\landscape.jpgを開くことを要求する。これは、実質的に再帰動作である。ここで、パスの各構成要素が、ディレクトリ階層を下位方向に横切りながら考慮される。従って、ステップ１は、ルートディレクトリにおいてエントリ「Pictures」を探索することである。見つかると、ステップを１つ進み、Picturesにおいてエントリ「Holiday」を探索する。また更に１つ進み、Holidayにおいてエントリ「landscape.jpg」を見付ける。
【００４８】
ここで、以下のように、階層がメモリースティック（登録商標）上に存在する場合を考える。
【００４９】
\
\MSSymbian
\Documents
\accounts.doc
\info.doc
\Pictures
\Holiday
\landscape.jpg
\tree.jpg。
【００５０】
従来の単純なストリング操作において、アプリケーションのパス\Pictures\Holiday\landscape.jpgが、\MSSymbian\Pictures\Holiday\landscape.jpgに変換され、上述のように、探索は、ルートの「MSSymbian」の探索から開始する。
【００５１】
しかし、ストリング操作及びルートにおける最初の探索は、労力及び時間の浪費である。全てのエントリがMSSymbianのサブディレクトリ内に存在することが分かっているため、ルートにおける探索を実行する必要はない。従って、アプリケーションのパスを変更せずに、探索をMSSymbianから開始することが、より適切な実現例であろう。探索のステップは、MSSymbianにおいてエントリ「Pictures」を探索することから開始し、Holiday中の「landscape.jpg」まで進む。
【００５２】
ルートにリダイレクトするマジックディレクトリは、パスの中のマジックトークンを識別し、それをスキップすることにより処理され、探索はルートから開始される。例えば、アプリケーションが\System\MSROOT\DCIMを渡すと、マジックトークン「\System\MSROOT」が認識され、スキップされる。探索は、ルート中のエントリ「DCIM」を見つけることから開始する。
【００５３】
ゴーストディレクトリの場合、リダイレクションのトークンがパス内のいずれかの場所に現れるため、更に複雑である。従って、これは、ストリング置換を使用して、更に好適に実現されるだろう。
【国際調査報告】
2007516487.tif 000002
2007516487.tif 000003