(57)【要約】【課題】ロングファイルネームからショートファイルネームへの変換の効率化により、コンパイル作業を円滑化する。【解決手段】アプリケーションプログラムにおいて、検出されたロングファイルネームは、配列に格納される。そこで、当該ロングファイルネームが格納された配列の番号と、予め決められた文字列とを組み合わせて、そのロングファイルネームに対応したショートファイルネームが作成される。また、新たに検出されたロングファイルネームと、すでに配列内に格納されているロングファイルネームとを照合するに際して、当該配列内の各配列要素の特定のバイトだけが特定のデータと比較されて、効率的な配列検索がされる。【選択図】        図１
2004185450.tif 000002
【特許請求の範囲】
【請求項１】
検出されたロングファイルネームを配列に格納し、
当該ロングファイルネームを格納した配列についての配列番号と管理システムの任意により予め決められた文字列とを組み合わせ、
当該組み合わせによって当該配列番号の配列に格納されているロングファイルネームに対応するショートファイルネームを作成し、
当該ショートファイルネームを前記配列に対応させて格納し、
当該ショートファイルネームによってロングファイルネームを管理することを特徴とするロングファイルネームの管理方法。
【請求項２】
前記文字列は、前記配列番号の左側に結合される第１の文字列と、前記配列番号の右側に結合される第２の文字列とから成ることを特徴とする請求項１記載のロングファイルネームの管理方法。
【請求項３】
前記配列は、１次元の配列から成ることを特徴とする請求項１記載のロングファイルネームの管理方法。
【請求項４】
検出されたロングファイルネームを格納しようとする配列についての配列番号と管理システムの任意により予め決められた文字列とを組み合わせ、
当該組み合わせによって当該ロングファイルネームに対応するショートファイルネームを作成し、
当該ロングファイルネームと当該ショートファイルネームとを対応させて前記配列番号の配列に格納し、
当該ショートファイルネームによってロングファイルネームを管理することを特徴とするロングファイルネームの管理方法。
【請求項５】
前記文字列は、前記配列番号の左側に結合される第１の文字列と、前記配列番号の右側に結合される第２の文字列とから成ることを特徴とする請求項４記載のロングファイルネームの管理方法。
【請求項６】
前記配列は、１次元の配列から成ることを特徴とする請求項４記載のロングファイルネームの管理方法。
【請求項７】
ロングファイルネームを格納するためのすべての配列要素を特定のデータによって初期化し、
検出したロングファイルネームを格納するに際して、それを格納しようとする配列要素内の管理システムによって特定された特定のバイトのみを検査し、
当該特定のバイトが前記特定の初期化データと一致した場合に、前記検出したロングファイルネームを格納することを特徴とするロングファイルネームの管理方法。
【請求項８】
前記特定のバイトは、各配列要素の１バイト目であることを特徴とする請求項７記載のロングファイルネームの管理方法。
【請求項９】
前記特定のデータは、１６進数表示で“００”であることを特徴とする請求項７記載のロングファイルネームの管理方法。
【請求項１０】
ロングファイルネームを格納するための配列要素に格納されているロングファイルネームを無効にする場合には、当該配列要素内の管理システムによって特定された特定のバイトに特定のデータを格納しておき、
検出したロングファイルネームを格納するに際して、それを格納しようとする配列要素内の前記特定のバイトのみを検査し、
当該特定のバイトが前記特定のデータと一致した場合に、前記検出したロングファイルネームを格納することを特徴とするロングファイルネームの管理方法。
【請求項１１】
前記特定のバイトは、各配列要素の１バイト目であることを特徴とする請求項１０記載のロングファイルネームの管理方法。
【請求項１２】
前記特定のデータは、１６進数表示で“Ｅ５”であることを特徴とする請求項１０記載のロングファイルネームの管理方法。
【請求項１３】
検出したロングファイルネームを配列要素に格納されたロングファイルネームと照合するに際して、
当該配列要素内の特定のバイトだけを特定のデータと比較し、
当該特定のバイトが特定のデータである場合に直ちに次の配列要素を検査し、当該特定のバイトが特定のデータでない場合に、前記検出したロングファイルネームを当該配列要素に格納されたロングファイルネームと照合することを特徴とするロングファイルネームの管理方法。
【請求項１４】
前記特定のデータは、１バイトの初期化データであることを特徴とする請求項１３記載のロングファイルネームの管理方法。
【請求項１５】
前記特定のデータは、１バイトの無効化データであることを特徴とする請求項１３記載のロングファイルネームの管理方法。
【請求項１６】
前記特定のデータは、１バイトの初期化データと１バイトの無効化データの双方であることを特徴とする請求項１３記載のロングファイルネームの管理方法。
【請求項１７】
前記特定のバイトは、各配列要素の１バイト目であることを特徴とする請求項１３記載のロングファイルネームの管理方法。
【請求項１８】
前記特定のバイトは、各配列要素の１バイト目であることを特徴とする請求項１４記載のロングファイルネームの管理方法。
【請求項１９】
前記特定のバイトは、各配列要素の１バイト目であることを特徴とする請求項１５記載のロングファイルネームの管理方法。
【請求項２０】
前記特定のバイトは、各配列要素の１バイト目であることを特徴とする請求項１６記載のロングファイルネームの管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ファイルシステムでサポートされていないロングファイルネームをアプリケーションプログラムで使用した場合におけるロングファイルネームの管理方法に関するものである。
【０００２】
【従来の技術】
パーソナルコンピュータ用のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）におけるファイル管理システムでは、歴史的な経緯から、そのファイルネームについて８＋３文字セットが使われてきた。すなわち、このシステムでは、ファイルネームを８文字の英数字とドットと３文字の英数字による拡張子で表している。例を挙げれば、ｆｉｌｅｎａｍｅ．ｅｘｔである。このようなファイルネームの表示方式は、ＩＳＯ９６６０Ｌｅｖｅｌ  １として国際標準にもなっている。
【０００３】
ところで、時代が進んで、各メーカーによって新たなＯＳがそれぞれ開発され、各系統のＯＳとして発展してきた。そして、これらのいずれの系統におけるＯＳでも、ファイルネームについては、国際標準である８＋３文字セットの表示方式が守られてきた。しかし、いくつかの系統のＯＳでは、当初から８＋３文字セットに拘束されずにファイルネームをつけることができるようにしていた。このような方式によるファイルネームをロングファイルネームと呼ぶ。これに対して、８＋３文字セットの表示方式によるファイルネームをショートファイルネームと呼ぶことにする。
【０００４】
ところが、ある系統のＯＳでは、当初からロングファイルネームを使用できるようにしておらず、当初はショートファイルネームだけをサポートし、その後に発展したＯＳからロングファイルネームもサポートするようになっている。
【０００５】
従って、現在では、大部分のＯＳでロングファイルネームを使用できるようになっているものの、ある系統のＯＳを使用しているパーソナルコンピュータにおいて、まだ昔のＯＳのままになっている場合もあり、その場合には、ショートファイルネームしか使用することができない。しかし、世間一般には、ショートファイルネームは、もはや過去のものとなっており、ユーザーはアプリケーションプログラムの作成に際してファイルネームの形式にこだわらずに作業を進めている。すなわち、本願明細書でいうロングファイルネームが使用される。よって、上述の場合に、ロングファイルネームをショートファイルネームに変換することが必要になる。そこで、従来の変換方法を示す。
【０００６】
従来は、以下の規則に従ってロングファイルネームを８＋３文字セットのショートファイルネームに変換していた。
１．拡張文字等は、アンダースコア“＿”に変換する。
２．ピリオドの後にある最初の３文字を拡張子とする。
３．スペースは、無視する。
４．最初の６文字だけを残してそれを大文字に変換する。
５．残りの２文字は、ティルダ“〜”と数字の組み合わせである。その最初のものは、“〜１”である。最初の６文字が同じであるファイルネームが２つあるときには、２つ目のものには、“〜２”をつける。同じファイルネームが１０あるときには、１０番目のものには、“〜１０”をつけ、最初の５文字とこれの組み合わせとする。
【０００７】
【発明が解決しようとする課題】
しかしながら、上述した従来の技術には、次のような課題があった。
アプリケーションプログラムで新たにロングファイルネームを使用したときに、そのロングファイルネームの最初の６文字が同じであるロングファイルネームがすでに使用されている場合もある。その場合には、上述したように、〜１，〜２をつけて区別することとなる。
【０００８】
よって、アプリケーションプログラムのコンパイル等の際に新たなロングファイルネームが検出されたときは、ファイル管理システムにおいて管理されているロングファイルネームをすべて検索し、最初の６文字が同じかどうかを調べなければならない。そうしなければ、ショートファイルネームに変換することができない。このような検索処理は、新たなロングファイルネームが検出される都度行わなければならない。
従って、アプリケーションプログラムのコンパイルに時間が掛かり、プログラム開発を円滑に行うことができないという問題を残していた。
【０００９】
【課題を解決するための手段】
本発明は以上の点を解決するため次の構成を採用する。
〈構成１〉
検出されたロングファイルネームを配列に格納し、当該ロングファイルネームを格納した配列の番号と管理システムの任意により予め決められた文字列とを組み合わせ、当該組み合わせによって当該番号の配列に格納されているロングファイルネームに対応するショートファイルネームを作成する。これによって、ロングファイルネームを構成する文字列に関係なく、ショートファイルネームを作成する。そして、当該ショートファイルネームを前記配列に対応させて格納し、当該ショートファイルネームによってロングファイルネームを管理する。
【００１０】
〈構成２〉
検出したロングファイルネームを配列に格納されたロングファイルネームと照合するに際して、当該配列内の特定のバイトだけを特定のデータと比較する。そして、当該特定のバイトが特定のデータである場合に直ちに次の配列を検査する。一方、当該特定のバイトが特定のデータでない場合に、前記検出したロングファイルネームを当該配列に格納されたロングファイルネームと照合する。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態を具体例を用いて説明する。
〈具体例１〉
図１は、本発明のロングファイルネームの管理方法によるショートファイルネームの作成過程の説明図である。
図１において、配列ｌｆ２ｓは、ロングファイルネームのリストである。アプリケーションプログラム中に記載されたロングファイルネームは、そのアプリケーションプログラムのコンパイル等の際にコンパイラ等によって検出される。そして、検出されたロングファイルネームは、リスト化されて配列ｌｆ２ｓに格納される。
【００１２】
配列ｌｆ２ｓの各要素には、例えば、２５６バイトが割り当てられる。これに対応して、ロングファイルネームは２５５文字以下の文字列で構成される。これらの文字は、英数字やスペースである。ロングファイルネームが２５５文字に満たない場合には、残りの領域は、１６進数表示で“００”とされる。
【００１３】
ここで、本発明によるショートファイルネームの作成過程の説明に入る。
本発明では、配列ｌｆ２ｓの配列番号ｎをショートファイルネームの構成文字としてそのまま使用する。すなわち、この配列番号ｎをシステムの任意により予め決められた文字列と組み合わせる。
【００１４】
図１に示す具体例では、この文字列として、配列番号の左側に結合される第１の文字列である任意文字列１と、配列番号の右側に結合される第２の文字列である任意文字列２とを用いる。任意文字列１の例として、“ｓ”を用いる。これは、８＋３文字セットのうちの８文字の部分に割り当てられる。また、任意文字列２の例として、“．ｄａｔ”を用いる。これによって、８＋３文字セットのショートファイルネームｓｎ．ｄａｔを作成する。尚、任意文字列２は、必ずしもドット（．）や拡張子に限られない。これは、アプリケーションプログラムで必要な範囲でショートファイルネームを識別できれば足りるからである。ただ、伝統に従って、８＋３文字セットを用いる方が望ましいということである。
【００１５】
また、このようなショートファイルネームを構成する文字列として、任意文字列１または任意文字列２のうちのいずれか一方だけを用いるようにしてもよい。
一方、配列番号ｎについては、２桁以上になる場合もあり、その場合には、任意文字列１は、６文字以下となる。
【００１６】
更に、配列は、１次元の配列に限らず、２次元以上でも差し支えない。その場合、配列番号ｎを２桁以上としてショートファイルネームの構成文字とする。そうすれば、１次元の配列を用いる場合と全く同様である。
【００１７】
他方、配列については、ショートファイルネームの作成を開始する段階で、すでにロングファイルネームが所定の配列ｌｆ２ｓに納められているときは、その配列ｌｆ２ｓについての配列番号ｎを用いることができる。また、任意文字列１として、ロングファイルネームの配列名ｌｆ２ｓをそのまま用いることもできる。
【００１８】
一方、ショートファイルネームの作成を開始する段階で、まだロングファイルネームが所定の配列に納められていないときは、以下のようにすることができる。そのロングファイルネームを格納しようとする配列の配列名として任意文字列１（ｓ）を決める。そして、配列番号ｎをカウントアップしつつ、その配列番号ｎを用いてショートファイルネームを決める。そうしながら、ロングファイルネームを配列ｓ［ｎ］に格納していくことができる。
【００１９】
以上のようにして、本発明では、ロングファイルネームがどのような名前であるかに拘わらず、それに対応するショートファイルネームを決定することができる。
【００２０】
図２は、本発明によって作成されたショートファイルネームのロングファイルネームとの対応図を示す。
配列番号ｎの配列ｌｆ２ｓに格納されているロングファイルネームに対応するショートファイルネームは、ｓｎ．ｄａｔに決定される。その一方、配列番号ｎの配列ｌｆ２ｓに格納されているロングファイルネームは、図示のＬｏｎｇＦｉｌｅＮａｍｅ＿ｎである必要はなく、どのようなロングファイルネームでもよい。
【００２１】
この結果、従来のように、重複したショートファイルネームが作成されることはなくなり、そのような重複を避けるためのショートファイルネームのチェックは不要となる。
一方、ロングファイルネームについては、配列に格納する際に、重複した管理を避けるために重複していないかのチェックが必要である。
【００２２】
ところで、本発明では、コンパイル時間の短縮の課題を解決する手段として、ロングファイルネームの格納および検索についても、その手段を提供している。
ここで、その具体例を説明する。
【００２３】
〈具体例２〉
具体例２は、ロングファイルネームのデータ構造に関するものである。
図３は、ロングファイルネームのデータ構造を例示する。
図３において、配列番号に対応したロングファイルネームの格納領域は２５６バイトの大きさで指定されている。
【００２４】
具体例２では、この格納領域内の１バイト目に特殊な意味を持たせている。この１バイト目は、１６進数表示で“００”であるか、“Ｅ５”であるか、その他であるかで区別される。
【００２５】
ところで、配列内の全領域は、予め“００”で初期化されている。よって、１バイト目が“００”であることは、そこにロングファイルネームが指定されていないことを意味する。
また、本具体例では、原則として、配列番号の若い順番にロングファイルネームを割り当てている。よって、検索の結果、１バイト目が“００”である配列要素に行き当たったときは、その配列が未使用領域であり、かつ、それ以後のすべての要素が未使用であることを意味する。従って、これにより、それ以後の検索を必要としないと判定することができる。
【００２６】
そこで、ロングファイルネームを格納する第１の方法として、上から順番に各配列要素の１バイト目だけを“００”と比較し、これと一致した配列要素に直ちにロングファイルネームを格納する方法を採れる。
尚、各配列要素の特別の意味を持たせるバイトについては、１バイト目以外の他のバイトを用いたとしても、それは本発明の概念に含まれる。また、初期化データとして、“００”以外の他の値を用いてもよいことはもちろんである。
【００２７】
一方、図３において、各配列要素の１バイト目が“Ｅ５”であることは、そのロングファイルネームを何らかの理由によって消去したことを意味する。よって、検索処理の途中で、１バイト目が“Ｅ５”の配列要素に行き当たったときは、その配列要素についてはロングファイルネームの照合をする必要はない。また、そのとき、新たにロングファイルネームを格納しようとする場合は、直ちにその配列要素に格納することができる。
【００２８】
そこで、ロングファイルネームを格納する第２の方法として、上から順番に各配列要素の１バイト目だけを“Ｅ５”と比較し、これと一致した配列要素に直ちにロングファイルネームを格納する方法を採れる。
尚、各配列要素の特別の意味を持たせるバイトについては、１バイト目以外の他のバイトを用いたとしても、それは本発明の概念に含まれる。また、無効化データとして、“Ｅ５”以外の他の値を用いてもよいことはもちろんである。
【００２９】
ただ、伝統的な８＋３文字セットのショートファイルネームを用いるファイル管理システムでは、先頭の１バイト目が“Ｅ５”であることは、そのファイルが削除されたものであることを意味していた。そのため、本具体例でも、この伝統に従い、配列要素の１バイト目が“Ｅ５”であることは、そのロングファイルネームを消去したことを意味することとしたものである。
【００３０】
一方、アプリケーションプログラムがロングファイルネームの検索を行う場合の処理手順の具体例を図４に示す。
図４において、検索処理が開始されると（ステップＳ４０１）、先頭の配列要素から検査を始める（ステップＳ４０２）。まず、その先頭バイトが１６進数で“００”であるかを調べ（ステップＳ４０３）、そうであれば、検査すべきデータはないので、検査自体が終了になる（ステップＳ４０８）。
【００３１】
その先頭バイトが“００”でないときは、次に、その先頭バイトが“Ｅ５”であるかどうかを調べる（ステップＳ４０４）。その先頭バイトが“Ｅ５”である場合には、そのファイルネームが削除されたことを意味しているので、次の配列要素の検査に進む（ステップＳ４０７）。その先頭バイトが他のデータである場合に、初めて検査対象のロングファイルネームと当該配列要素内のロングファイルネームとの照合を行う（ステップＳ４０５）。そして、両者が一致しない場合には、次の配列要素の検査に進む（ステップＳ４０７）。両者が一致した場合には、ショートファイルネームの作成等の処理を行い（ステップＳ４０６）、これをもって検査を終了する（ステップＳ４０８）。
【００３２】
尚、上述の検査処理において、初期化データと無効化データとして、“００”と“Ｅ５”以外のデータを用いることができるのは、前述の具体例１と同様である。また、１バイト目以外のバイトを検査用のバイトとして用いても良い点も同様である。更に、初期化データと無効化データのうちのいずれか一方だけを検査するようにしても、ある程度は本発明の目的を達成できる。
【００３３】
【発明の効果】
以上詳細に説明したように、本発明のロングファイルネームの管理方法によれば、ロングファイルネームがどのような文字列であるかに拘わらず、それに対応するショートファイルネームを決定することができる。これにより、重複するショートファイルネームの検索を省略することができる。よって、ファイルネームを管理するファイル管理システムの負担を軽減することができる。この結果、コンパイル等の処理時間を短縮でき、アプリケーションプログラムの開発を円滑に行うことが可能となる。
【図面の簡単な説明】
【図１】本発明によるショートファイルネームの作成過程の説明図である。
【図２】本発明によるショートファイルネームの対応図である。
【図３】本発明によるロングファイルネームのデータ構造を例示する図である。
【図４】本発明によるロングファイルネームの検索処理手順を説明するフローチャートである。
【符号の説明】
Ｓ４０１〜Ｓ４０８  処理ステップ
【図１】
2004185450.tif 000003
【図２】
2004185450.tif 000004
【図３】
2004185450.tif 000005
【図４】
2004185450.tif 000006