(57)【特許請求の範囲】
【請求項１】
オペレーティングシステムを動かすプロセッサおよび前記オペレーティングシステムを記憶するメモリ手段を有するコンピュータシステムで実行する方法であって、前記プロセッサにより、
（ａ）ファイルのための第１ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第１ディレクトリエントリは前記ファイルのための短いファイル名を保有しており、前記短いファイル名は第１のオペレーティングシステムにより許容される最大数以下の文字を含むステップと、
（ｂ）前記ファイルのための第２ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第２ディレクトリエントリは該ファイルのための長いファイル名を保有し、該長いファイル名は前記短いファイル名のみをサポートする前記第１のオペレーティングシステムにより許容されるよりも多い数の文字を持つが第２のオペレーティングシステムにより許容される文字数以下の文字を持ち、前記第２ディレクトリエントリを、短いファイル名のみをサポートする前記第１のオペレーティングシステムからは見えなくさせる属性フィールドを有するステップと、
（ｃ）前記第１のオペレーティングシステムで前記第１のディレクトリエントリにアクセスするステップとを有し、
前記ステップ（ｂ）は、前記属性フィールドの値を設定して、その結果として前記第２ディレクトリを前記第１のオペレーティングシステムからは見えなくさせるステップをさらに有することを特徴とする方法。
【請求項２】
請求項１に記載の方法において、前記属性フィールドは、ボリュームラベルビットを有し、前記属性フィールドを設定して、その結果として前記第２ディレクトリエントリを前記第１のオペレーティングシステムからは見えなくさせるステップは前記ボリュームラベルビットを１の値に設定するステップを有することを特徴とする方法。
【請求項３】
請求項２に記載の方法において、前記属性フィールドは読み出し専用を示すビット、隠すことを示すビットおよびシステムビットを有し、前記属性フィールドを設定して、その結果として前記第２ディレクトリエントリを前記第１のオペレーティングシステムからは見えなくさせるステップは前記読み出し専用を示すビット、隠すことを示すビットおよびシステムビットの各々を１の値に設定するステップを有することを特徴とする方法。
【請求項４】
請求項１に記載の方法において、前記ファイルのための前記第１ディレクトリエントリおよび第２ディレクトリエントリの各々は開始クラスタフィールドを有し、
前記第１ディレクトリエントリの開始クラスタフィールド中に、前記ファイルの第１クラスタが記憶されている場所の前記記憶手段の区分を示すポインタを記憶するステップと、
前記第２ディレクトリエントリの開始クラスタフィールド中にゼロの値を記憶するステップと、
をさらに有することを特徴とする方法。
【請求項５】
請求項１に記載の方法において、前記第１ディレクトリエントリおよび前記第２ディレクトリエントリは別個に区別されたエントリを有することを特徴とする方法。
【請求項６】
オペレーティングシステムを動かすプロセッサおよび前記オペレーティングシステムを記憶するメモリ手段を有するコンピュータシステムで実行する方法であって、前記プロセッサにより、
（ａ）ファイルのための第１ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第１ディレクトリエントリは前記ファイルのための短いファイル名を保有しており、前記短いファイル名は第１のオペレーティングシステムにより許容される最大数以下の文字を含むステップと、
（ｂ）前記ファイルのための第２ディレクトリエントリを前記メモリ手段に記憶すると共に、ただし、そこでは、前記第２ディレクトリエントリは該ファイルのための長いファイル名を保有しており、前記長いファイル名は前記短いファイル名のみをサポートする前記第１のオペレーティングシステムにより許容される最大数より多い数の文字を含んでいるが第２のオペレーティングシステムにより許容される最大数以下の文字を含んでおり、前記第２ディレクトリエントリの中に前記短いファイル名のチェック和を記憶するステップと、ここで、前記チェック和は前記第２ディレクトリエントリの前記長いファイル名をそれに適合した前記短いファイル名の前記第１ディレクトリエントリに関連づけるために使用されるものであり、
（ｃ）前記第１のオペレーティングシステムで前記第１ディレクトリエントリにアクセスするステップと
を実行することを特徴とする方法。
【請求項７】
請求項６に記載の方法において、前記第２ディレクトリエントリは複数のビットを有する属性フィールドを含み、前記属性フィールドのビットを設定して、その結果、前記第２ディレクトリエントリを、短いファイル名のみをサポートする前記第１オペレーティングシステムからは見えなくするステップをさらに有することを特徴とする方法。
【請求項８】
請求項７に記載の方法において、前記属性フィールドの複数のビットの１つはボリュームラベルビットを有し、前記属性フィールドのビットを設定して、その結果、前記第２ディレクトリエントリを見えなくするステップは前記ボリュームラベルビットを１の値に設定するステップを有することを特徴とする方法。
【請求項９】
請求項８に記載の方法において、前記属性フィールドの複数のビットは隠すことを示すビット、読み出し専用のビット、およびシステムビットを有し、前記属性フィールドのビットを設定して、その結果、前記第２ディレクトリエントリを見えなくするステップは前記隠すことを示すビット、読み出し専用のビット、およびシステムビットの各々を１の値に設定するステップを有することを特徴とする方法。
【請求項１０】
請求項６に記載の方法において、前記ファイルのための前記第１ディレクトリエントリおよび第２ディレクトリエントリの各々は開始クラスタフィールドを有し、前記第１ディレクトリエントリの開始クラスタフィールド中に、前記ファイルの第１クラスタが記憶されている、前記記憶手段の区分を示すポインタを記憶するステップ、および、
前記第２ディレクトリエントリの開始クラスタフィールドにゼロの値を記憶するステップをさらに有することを特徴とする方法。
【請求項１１】
請求項６に記載の方法において、前記第１ディレクトリエントリおよび前記第２ディレクトリエントリは別個に区別されたエントリを有することを特徴とする方法。
【請求項１２】
オペレーティングシステムを動かすプロセッサおよび前記オペレーティングシステムを記憶するメモリ手段を有するコンピュータシステムで実行する方法であって、前記プロセッサにより、
（ａ）ファイルのための第１ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第１ディレクトリエントリは前記ファイルのための短いファイル名を保有しており、前記短いファイル名は第１のオペレーティングシステムにより許容される最大数以下の文字を含むステップと、
（ｂ）前記ファイルのための第２ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第２ディレクトリエントリは該ファイルのための長いファイル名を保有しており、前記長いファイル名は前記短いファイル名のみをサポートする第１のオペレーティングシステムにより許容される最大数より多い数の文字を含んでいるが第２のオペレーティングシステムにより許容される最大数以下の文字を含んでいるステップと
（ｃ）前記第１のオペレーティングシステムで前記第１のディレクトリエントリにアクセスするステップと
（ｄ）前記長いファイル名の次の部分を保有する少なくとも１つの追加のディレクトリエントリおよび前記短いファイル名のチェック和を前記メモリ手段に記憶するステップと、ここで、前記チェック和は前記追加のディレクトリエントリ中の前記長いファイル名をそれに適合した前記短いファイル名の前記第１ディレクトリエントリに関連づけるために使用されるものであり、
を実行することを特徴とする方法。
【請求項１３】
請求項１２に記載の方法において、前記第２ディレクトリエントリおよび前記少なくとも１つの追加のディレクトリの各々は複数のビットを有する属性フィールドを含み、前記第２ディレクトリの属性フィールドの複数のビットおよび前記少なくとも１つの追加のディレクトリエントリの属性フィールドの複数のビットを設定して、その結果、それらのディレクトリエントリを短いファイル名のみをサポートする前記第１のオペレーティングシステムから見えなくするステップをさらに有することを特徴とする方法。
【請求項１４】
請求項１３に記載の方法において、前記第２ディレクトリエントリおよび前記追加のディレクトリエントリの各々の前記属性フィールドの複数のビットの１つはボリュームラベルビットを有し、それらのディレクトリエントリの属性フィールドのビットを設定して、その結果、それらのディレクトリエントリを見えなくするステップは前記ボリュームラベルビットを１の値に設定するステップを有することを特徴とする方法。
【請求項１５】
請求項１４に記載の方法において、前記第２ディレクトリエントリおよび前記少なくとも１つの追加のディレクトリエントリの各々の属性フィールドの複数のビットは隠すことを示すビット、読み出し専用のビット、およびシステムビットを有し、前記属性フィールドのビットを設定して、その結果、前記それらのディレクトリエントリを見えなくするステップは前記隠すことを示すビット、読み出し専用のビット、およびシステムビットの各々を１の値に設定するステップを有することを特徴とする方法。
【請求項１６】
請求項１２に記載の方法において、前記ファイルのための前記第１ディレクトリエントリ、第２ディレクトリエントリおよび追加のディレクトリエントリの各々は開始クラスタフィールドを有し、前記第１ディレクトリエントリの開始クラスタフィールド中に、前記ファイルの第１クラスタが記憶されている、前記記憶手段の区分を示すポインタを記憶するステップ、および、
前記第２ディレクトリエントリおよび少なくとも１つの追加のディレクトリエントリの各々の開始クラスタフィールドにゼロの値を記憶するステップをさらに有することを特徴とする方法。
【請求項１７】
請求項１２に記載の方法において、前記第１ディレクトリエントリおよび前記第２ディレクトリエントリの各々は別個に区別されたエントリを有することを特徴とする方法。
【請求項１８】
オペレーティングシステムを動かすプロセッサおよび前記オペレーティングシステムを記憶するメモリ手段を有するコンピュータシステムで実行する方法であって、前記プロセッサにより、
（ａ）ファイルのための第１ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第１ディレクトリエントリは前記ファイルのための短いファイル名を保有しており、前記短いファイル名は第１のオペレーティングシステムにより許容される最大数以下の文字を含むステップと、
（ｂ）前記ファイルのための第２ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第２ディレクトリエントリは該ファイルのための長いファイル名を保有しており、前記長いファイル名は前記短いファイル名のみをサポートする第１のオペレーティングシステムにより許容される最大数より多い数の文字を含んでいるが第２のオペレーティングシステムにより許容される最大数以下の文字を含んでいるステップと、
（ｃ）前記第１のオペレーティングシステムで前記第１のディレクトリエントリにアクセスするステップと
（ｄ）前記長いファイル名の次の部分を保有する少なくとも１つの追加のディレクトリエントリおよび前記部分を識別するための符牒を前記メモリ手段に記憶するステップと
（ｅ）前記第２ディレクトリエントリおよび前記少なくとも１つの追加のディレクトリの各々は複数のビットを有する属性フィールドを含み、前記第２ディレクトリエントリの属性フィールドの複数のビットおよび前記少なくとも１つの追加のディレクトリエントリの属性フィールドの複数のビットを設定して、その結果、それらのディレクトリエントリを短いファイル名のみをサポートする前記第１のオペレーティングシステムから見えなくするステップと、
を実行することを特徴とする方法。
【請求項１９】
請求項１８に記載の方法において、前記第２ディレクトリエントリおよび前記追加のディレクトリエントリの各々の前記属性フィールドの複数のビットの１つはボリュームラベルビットを有し、それらのディレクトリエントリの属性フィールドのビットを設定して、その結果、それらのディレクトリエントリを見えなくするステップは前記ボリュームラベルビットを１の値に設定するステップを有することを特徴とする方法。
【請求項２０】
請求項１９に記載の方法において、前記第２ディレクトリエントリおよび前記少なくとも１つの追加のディレクトリエントリの各々の属性フィールドの複数のビットは隠すことを示すビット、読み出し専用のビット、およびシステムビットを有し、前記属性フィールドのビットを設定して、その結果、前記それらのディレクトリエントリを見えなくするステップは前記隠すことを示すビット、読み出し専用のビット、およびシステムビットの各々を１の値に設定するステップを有することを特徴とする方法。
【請求項２１】
請求項１８に記載の方法において、前記ファイルのための前記第１ディレクトリエントリ、第２ディレクトリエントリおよび追加のディレクトリエントリの各々は開始クラスタフィールドを有し、前記第１ディレクトリエントリの開始クラスタフィールド中に、前記ファイルの第１クラスタが記憶されている、前記記憶手段の区分を示すポインタを記憶するステップ、および、
前記第２ディレクトリエントリおよび少なくとも１つの追加のディレクトリエントリの各々の開始クラスタフィールドにゼロの値を記憶するステップをさらに有することを特徴とする方法。
【請求項２２】
請求項１８に記載の方法において、前記符牒はファイルの短いファイル名の文字列としての使用が許されない不当に短い文字列を有することを特徴とする方法。
【請求項２３】
請求項１８に記載の方法において、前記第２ディレクトリエントリ中におよび１つの追加のディレクトリエントリ中に前記短いファイル名のチェック和を記憶するステップをさらに有し、ここで、前記チェック和は前記第２ディレクトリエントリ及び前記１つの追加のディレクトリエントリ中の前記長いファイル名をそれに適合した前記短いファイル名の前記第１ディレクトリエントリに関連づけるために使用されるものであることを特徴とする方法。
【請求項２４】
請求項１８に記載の方法において、前記第１ディレクトリエントリおよび前記第２ディレクトリエントリは別個に区別されたエントリを有することを特徴とする方法。
【請求項２５】
オペレーティングシステムを動かすプロセッサおよび前記オペレーティングシステムを記憶するメモリ手段を有するコンピュータシステムで実行する方法であって、前記プロセッサにより、
（ａ）前記オペレーティングシステムのファイルシステムのディレクトリ構造の一部分として、ファイルのための第１ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第１ディレクトリエントリは前記ファイルのための短いファイル名を保有しており、前記短いファイル名は第１のオペレーティングシステムにより許容される最大数以下の文字を含むステップと、
（ｂ）前記ファイルのための第２ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第２ディレクトリエントリは該ファイルのための長いファイル名を保有し、該長いファイル名は、前記短いファイル名のみをサポートする前記第１のオペレーティングシステムに許容される最大数の文字よりも多い文字を含むが第２のオペレーティングシステムにより許容される最大数以下の文字を含んでいて、前記第２ディレクトリエントリは複数のビットを有する属性フィールドを有し該属性フィールドの複数のビットを設定し、その結果前記第２ディレクトリエントリを短いファイル名のみをサポートする前記第１のオペレーティングシステムからは見えなくさせるステップと
（ｃ）前記第１のオペレーティングシステムで前記第１のディレクトリエントリにアクセスするステップ
を実行することを特徴とする方法。
【請求項２６】
請求項２５に記載の方法において、前記属性フィールドはボリュームラベルビットを有し、前記属性フィールドを設定して、その結果、前記第２ディレクトリエントリを見えなくするステップは前記ボリュームラベルビットを１の値に設定するステップを有することを特徴とする方法。
【請求項２７】
請求項２６に記載の方法において、前記属性フィールドは隠すことを示すビット、読み出し専用のビット、およびシステムビットを有し、前記属性フィールドを設定して、その結果、前記第２ディレクトリエントリを見えなくするステップは前記隠すことを示すビット、読み出し専用のビット、およびシステムビットの各々を１つの値に設定するステップを有することを特徴とする方法。
【請求項２８】
請求項２５に記載の方法において、前記ファイルのための前記第１ディレクトリエントリおよび第２ディレクトリエントリの各々は開始クラスタフィールドを有し、前記第１ディレクトリエントリの開始クラスタフィールド中に、前記ファイルの第１クラスタが記憶されている、前記記憶手段の区分を示すポインタを記憶するステップ、および、
前記第２ディレクトリエントリの開始クラスタフィールドにゼロの値を記憶するステップをさらに有することを特徴とする方法。
【請求項２９】
請求項２５に記載の方法において、前記第１ディレクトリエントリおよび前記第２ディレクトリエントリは別個に区別されたエントリを有することを特徴とする方法。
【請求項３０】
オペレーティングシステムを動かすプロセッサおよび前記オペレーティングシステムを記憶するメモリ手段を有するコンピュータシステムで実行する方法であって、前記プロセッサにより、
（ａ）前記オペレーティングシステムのファイルシステムのディレクトリ構造の一部分として、ファイルのための第１ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第１ディレクトリエントリは前記ファイルのための短いファイル名を保有しており、前記短いファイル名は第１のオペレーティングシステムにより許容される最大数以下の文字を含むステップと、
（ｂ）同じ前記ディレクトリ構造の一部分として前記ファイルのための第２ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第２ディレクトリエントリは該ファイルのための長いファイル名を保有し、該長いファイル名は、前記短いファイル名のみをサポートする前記第１のオペレーティングシステムに許容される最大数の文字よりも多い文字を含むが第２のオペレーティングシステムに許容される最大数以下の文字を含んでいるステップと、
（ｃ）前記第２ディレクトリエントリ中に前記短いファイル名のチェック和を記憶するステップと、ここで、前記チェック和は前記第２ディレクトリエントリの前記長いファイル名をそれに適合した前記短いファイル名の前記第１ディレクトリエントリに関連づけるために使用されるものであり、
（ｄ）前記第１のオペレーティングシステムで前記第１ディレクトリエントリにアクセスするステップと、
を実行することを特徴とする方法。
【請求項３１】
請求項３０に記載の方法において、前記第２ディレクトリエントリは複数のビットを有する属性フィールドを含み、前記属性フィールドのビットを設定して、その結果、前記第２ディレクトリエントリを、短いファイル名のみをサポートする前記第１オペレーティングシステムからは見えなくするステップをさらに有することを特徴とする方法。
【請求項３２】
請求項３１に記載の方法において、前記属性フィールドの複数のビットの１つはボリュームラベルビットを有し、前記属性フィールドのビットを設定して、その結果、前記第２ディレクトリエントリを見えなくするステップは前記ボリュームラベルビットを１の値に設定するステップを有することを特徴とする方法。
【請求項３３】
請求項３２に記載の方法において、前記属性フィールドの複数のビットは隠すことを示すビット、読み出し専用のビット、およびシステムビットを有し、前記属性フィールドのビットを設定して、その結果、前記第２ディレクトリエントリを見えなくするステップは前記隠すことを示すビット、読み出し専用のビット、およびシステムビットの各々を１の値に設定するステップを有することを特徴とする方法。
【請求項３４】
請求項３０に記載の方法において、前記ファイルのための前記第１ディレクトリエントリおよび第２ディレクトリエントリの各々は開始クラスタフィールドを有し、前記第１ディレクトリエントリの開始クラスタフィールド中に、前記ファイルの第１クラスタが記憶されている、前記記憶手段の区分を示すポインタを記憶するステップ、および、
前記第２ディレクトリエントリの開始クラスタフィールドにゼロの値を記憶するステップをさらに有することを特徴とする方法。
【請求項３５】
請求項３０に記載の方法において、前記第１ディレクトリエントリおよび前記第２ディレクトリエントリは別個に区別されたエントリを有することを特徴とする方法。
【請求項３６】
オペレーティングシステムを動かすプロセッサおよび前記オペレーティングシステムを記憶するメモリ手段を有するコンピュータシステムで実行する方法であって、前記プロセッサにより、
（ａ）前記オペレーティングシステムのファイルシステムのディレクトリ構造の一部分として、ファイルのための第１ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第１ディレクトリエントリは前記ファイルのための短いファイル名を保有しており、前記短いファイル名は第１のオペレーティングシステムにより許容される最大数以下の文字を含むステップと、
（ｂ）同じ前記ディレクトリ構造の一部分として前記ファイルのための第２ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第２ディレクトリエントリは該ファイルのための長いファイル名を保有し、該長いファイル名は、前記短いファイル名のみをサポートする前記第１のオペレーティングシステムに許容される最大数の文字よりも多い文字を含むが第２のオペレーティングシステムにより許容される最大数以下の文字を含んでいるステップと、
（ｃ）同じ前記ディレクトリ構造の一部分として、前記長いファイル名部分の次に続く部分を保有する少なくとも１つの追加のディレクトリエントリを前記メモリ手段に記憶するステップと、
（ｄ）前記第２ディレクトリエントリ中および前記少なくとも１つの追加のディレクトリエントリ中の各々に前記短いファイル名のチェック和を記憶するステップと、ここで、前記チェック和は前記第２ディレクトリエントリ及び前記少なくとも１つの追加ディレクトリ中の前記長いファイル名をそれに適合した前記短いファイル名の前記第１ディレクトリエントリに関連づけるために使用されるものであり、
（ｅ）前記第１のオペレーティングシステムで前記第１のディレクトリエントリにアクセスするステップ
を実行することを特徴とする方法。
【請求項３７】
請求項３６に記載の方法において、前記第２ディレクトリエントリおよび前記追加のディレクトリエントリの各々は複数のビットを有する属性フィールドを含み、前記第２ディレクトリの属性フィールドの複数のビットを設定して、その結果、それらのディレクトリエントリを短いファイル名のみをサポートする前記第１のオペレーティングシステムから見えなくするステップをさらに有することを特徴とする方法。
【請求項３８】
請求項３７に記載の方法において、前記第２ディレクトリエントリおよび前記追加のディレクトリエントリの各々の前記属性フィールドの複数のビットの１つはボリュームラベルビットを有し、それらのディレクトリエントリの属性フィールドを設定して、その結果、それらのディレクトリエントリを見えなくするステップは前記ボリュームラベルビットを１の値に設定するステップを有することを特徴とする方法。
【請求項３９】
請求項３８に記載の方法において、前記第２ディレクトリエントリおよび前記少なくとも１つの追加のディレクトリエントリの各々の属性フィールドの複数のビットは隠すことを示すビット、読み出し専用のビット、およびシステムビットを有し、前記属性フィールドのビットを設定して、その結果、前記それらのディレクトリエントリを見えなくするステップは前記隠すことを示すビット、読み出し専用のビット、およびシステムビットの各々を１の値に設定するステップを有することを特徴とする方法。
【請求項４０】
請求項３６に記載の方法において、前記ファイルのための前記第１ディレクトリエントリ、第２ディレクトリエントリおよび追加のディレクトリエントリの各々は開始クラスタフィールドを有し、前記第１ディレクトリエントリの開始クラスタフィールド中に、前記ファイルの第１クラスタが記憶されている、前記記憶手段の区分を示すポインタを記憶するステップ、および、
前記第２ディレクトリエントリおよび少なくとも１つの追加のディレクトリエントリの各々の開始クラスタフィールドにゼロの値を記憶するステップをさらに有することを特徴とする方法。
【請求項４１】
請求項３６に記載の方法において、前記第１ディレクトリエントリおよび前記第２ディレクトリエントリの各々は別個に区別されたエントリを有することを特徴とする方法。
【請求項４２】
オペレーティングシステムを動かすプロセッサおよび前記オペレーティングシステムを記憶するメモリ手段を有するコンピュータシステムで実行する方法であって、前記プロセッサにより、
（ａ）前記オペレーティングシステムのファイルシステムのディレクトリ構造の一部分として、ファイルのための第１ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第１ディレクトリエントリは前記ファイルのための短いファイル名を保有しており、前記短いファイル名は第１のオペレーティングシステムにより許容される最大数以下の文字を含むステップと、
（ｂ）同じ前記ディレクトリ構造の一部分として前記ファイルのための第２ディレクトリエントリを前記メモリ手段に記憶するステップであって、そこでは、前記第２ディレクトリエントリは該ファイルのための長いファイル名を保有し、該長いファイル名は、前記短いファイル名のみをサポートする前記第１オペレーティングシステムに許容される最大数の文字よりも多い文字を含むが第２のオペレーティングシステムにより許容される最大数以下の文字を含んでいるステップと、
（ｃ）前記第１のオペレーティングシステムで前記第１のディレクトリエントリにアクセスするステップと、
（ｄ）同じ前記ディレクトリ構造の一部分として、前記長いファイル名部分の次に続く部分を保有する少なくとも１つの追加のディレクトリエントリおよび前記長いファイル名のどの部分かを示すユニークな符牒を前記メモリ手段に記憶するステップと、
（ｅ）前記第２ディレクトリエントリおよび前記追加のディレクトリエントリの各々は複数のビットを有する属性フィールドを含み、前記第２ディレクトリの属性フィールドの複数のビット及び前記追加のディレクトリエントリの属性フィールドの複数のビットを設定して、その結果、それらのディレクトリエントリを短いファイル名のみをサポートする前記第１のオペレーティングシステムから見えなくするステップと、
を実行することを特徴とする方法。
【請求項４３】
請求項４２に記載の方法において、前記第２ディレクトリエントリおよび前記追加のディレクトリエントリの各々の前記属性フィールドの複数のビットの１つはボリュームラベルビットを有し、それらのディレクトリエントリの属性フィールドを設定して、その結果、それらのディレクトリエントリを見えなくするステップは前記ボリュームラベルビットを１の値に設定するステップを有することを特徴とする方法。
【請求項４４】
請求項４２に記載の方法において、前記第２ディレクトリエントリおよび前記少なくとも１つの追加のディレクトリエントリの各々の属性フィールドの複数のビットは隠すことを示すビット、読み出し専用のビット、およびシステムビットを有し、前記属性フィールドのビットを設定して、その結果、前記それらのディレクトリエントリを見えなくするステップは前記隠すことを示すビット、読み出し専用のビット、およびシステムビットの各々を１の値に設定するステップを有することを特徴とする方法。
【請求項４５】
請求項４２に記載の方法において、前記ファイルのための前記第１ディレクトリエントリ、第２ディレクトリエントリおよび追加のディレクトリエントリの各々は開始クラスタフィールドを有し、前記第１ディレクトリエントリの開始クラスタフィールド中に、前記ファイルの第１クラスタが記憶されている、前記記憶手段の区分を示すポインタを記憶するステップ、および、
前記第２ディレクトリエントリおよび少なくとも１つの追加のディレクトリエントリの各々の開始クラスタフィールドにゼロの値を記憶するステップをさらに有することを特徴とする方法。
【請求項４６】
請求項４２に記載の方法において、前記符牒はファイルの短いファイル名の文字列としての使用が許されない不当に短い文字列を有することを特徴とする方法。
【請求項４７】
請求項４２に記載の方法において、前記第２ディレクトリエントリ中におよび前記少なくとも１つの追加のディレクトリエントリ中に前記短いファイル名のチェック和を記憶するステップをさらに有し、ここで、前記チェック和は前記第２ディレクトリエントリ及び前記少なくとも１つの追加のディレクトリ中の前記長いファイル名をそれに適合した前記短いファイル名の前記第１ディレクトリエントリに関連づけるために使用されるものであることを特徴とする方法。
【請求項４８】
請求項４２に記載の方法において、前記第２ディレクトリエントリは前記ディレクトリ構造中では前記第１ディレクトリエントリと隣接することを特徴とする方法。
【請求項４９】
請求項４２に記載の方法において、前記少なくとも１つの追加のディレクトリエントリは前記ディレクトリ構造中では前記第２ディレクトリエントリと隣接することを特徴とする方法。
【請求項５０】
請求項４２に記載の方法において、前記第１ディレクトリエントリおよび前記第２ディレクトリエントリは別個に区別されたエントリを有することを特徴とする方法。
【請求項５１】
プロセッサ、記憶手段、オペレーティングシステム、ディレクトリエントリにアクセスするためのディレクトリサービスおよび前記ディレクトリエントリを使用してファイルにアクセスするためのファイルシステムを有するコンピュータシスムで実行する方法であって、前記プロセッサにより、
（ａ）前記ファイルおよびファイルの位置についての短いファイル名を有する第１ディレクトリエントリを作成するステップと、前記短いファイル名は第１のオペレーティングシステムにより許容される最大数以下の文字を含み、
（ｂ）前記ファイルについての長いファイル名を有する第２ディレクトリエントリを作成するステップであって、そこでは少なくとも固定数の文字を有する長い名前のファイル名の部分および前記第２ディレクトリエントリが前記長いファイル名の部分を有することを示す符牒を前記第２ディレクトリエントリが有するステップと、前記第２ディレクトリエントリはさらに複数のビットを有する属性フィールドを含み、前記長いファイル名は前記第１のオペレーティングシステムに許容される最大数よりも多くの文字を含み且つ第２のオペレーティングシステムに許容される最大数以下の文字を含んでおり、
（ｃ）作成された第１ディレクトリエントリおよび第２ディレクトリエントリを前記記憶手段に記憶するステップと、ここで、前記第２ディレクトリエントリの属性フィールドの複数のビットを設定して、その結果、前記第２ディレクトリエントリを短いファイル名のみをサポートする前記第１のオペレーティングシステムからは見えなくし、
（ｄ）記憶された前記第２ディレクトリエントリに前記ディレクトリサービスによりアクセスして、前記ファイルにアクセスするステップと、
（ｅ）前記長いファイル名部分の次に続く部分を保有する少なくとも１つの追加のディレクトリエントリを作成し、前記記憶手段に記憶するステップと
を実行することを特徴とする方法。
【請求項５２】
請求項５１に記載の方法において、各前記追加のディレクトリエントリの長いファイル名は固定数の文字列であることを特徴とする方法。
【請求項５３】
請求項５２に記載の方法において、前記長いファイル名についての少なくとも１つの追加のディレクトリエントリを作成するステップでは、複数の前記追加のディレクトリエントリを作成することを特徴とする方法。
【請求項５４】
請求項５１に記載の方法において、前記長いファイル名についての少なくとも１つの追加のディレクトリエントリを作成するステップでは前記追加のディレクトリエントリが保有する長いファイル名部分を識別するための符牒を各追加のディレクトリエントリ中に与えることを特徴とする方法。
【請求項５５】
請求項５１に記載の方法において、前記長いファイル名についての少なくとも１つの追加のディレクトリエントリを作成するステップでは各追加のディレクトリエントリ中に短いファイル名のチェック和を与え、ここで、前記チェック和は前記各追加のディレクトリエントリ中の前記長いファイル名をそれに適合した前記短いファイル名の前記第１ディレクトリエントリに関連づけるために使用されるものであることを特徴とする方法。
【請求項５６】
請求項５４に記載の方法において、前記追加のディレクトリエントリの各々の中に与えられる符牒はその追加のディレクトリエントリの先頭に記憶され、ファイルの短いファイル名のとしての使用が許されない不当に短い文字列を有することを特徴とする方法。
【請求項５７】
請求項５４に記載の方法において、前記符牒が前記第２ディレクトリエントリの先頭に記憶され、ファイルの短いファイル名の文字列としての使用が許されない不当に短い文字列を有することを特徴とする方法。
【請求項５８】
オペレーティングシステムを動かすプロセッサおよび前記オペレーティングシステムを記憶する記憶領域を有する記憶手段を含むコンピュータシステムの方法であって、前記プロセッサにより、
（ａ）ファイルの第１ディレクトリエントリを前記記憶手段の第１記憶領域に記憶するステップであって、そこでは、前記第１ディレクトリエントリは前記ファイルのための短いファイル名を保有し、前記短いファイル名はアプリケーションプログラムにより許容される最大数以下の文字を含むステップと
（ｂ）前記記憶手段の、前記第１記憶領域に隣接する第２記憶領域に、前記ファイルのための第２ディレクトリエントリを記憶するステップであって、そこでは、前記第２ディレクトリエントリは前記ファイルのための長いファイル名の少なくとも最初の部分を有し、前記長いファイル名は前記アプリケーションプログラムにより許容される最大数の文字よりも多くの文字を含むステップと、
（ｃ）前記長いファイル名部分の次の部分を有する少なくとも１つの追加のディレクトリエントリを記憶するステップと、
（ｄ）記憶された前記ディレクトリエントリの１つにアクセスして前記ファイルにアクセスするステップと、
（ｅ）前記第２ディレクトリエントリは複数のビットを持つ属性フィールドを有し、前記属性フィールドの複数のビットを設定して、前記第２ディレクトリエントリを前記短いファイル名のみをサポートする前記アプリケーションプログラムからは見えなくするステップと、
を有することを特徴とする方法。
【請求項５９】
さらに、前記第２ディレクトリエントリ及び前記少なくとも１つの追加のディレクトリエントリの各々に前記短いファイル名のチェック和を記憶するステップを有し、ここで、前記チェック和はそれぞれのディレクトリエントリの前記長いファイル名をそれに適合した前記短いファイル名の前記第１ディレクトリエントリに関連づけるために使用されるものであることを特徴とする方法。
【請求項６０】
オペレーティングシステムを動かすプロセッサおよび前記オペレーティングシステムを記憶する記憶領域を有する記憶手段を含むコンピュータシステムの方法であって、前記プロセッサにより、
（ａ）ファイルの第１ディレクトリエントリを前記記憶手段の第１記憶領域に記憶するステップであって、そこでは、前記第１ディレクトリエントリは前記ファイルのための短いファイル名を保有し、前記短いファイル名はアプリケーションプログラムにより許容される最大数以下の文字を含むステップと
（ｂ）前記記憶手段の、前記第１記憶領域に隣接する第２記憶領域に、前記ファイルのための第２ディレクトリエントリを記憶するステップであって、そこでは、前記第２ディレクトリエントリは前記ファイルのための長いファイル名の少なくとも最初の部分を有し、前記長いファイル名は前記アプリケーションプログラムにより許容される最大数の文字を越える文字数を含むステップと、
（ｃ）前記長いファイル名の部分の次の部分を有する少なくとも１つの追加のディレクトリエントリを記憶するステップと、
（ｄ）記憶された前記ディレクトリエントリの１つにアクセスして前記ファイルにアクセスするステップと、
（ｅ）前記第２ディレクトリエントリは複数のビットを持つ属性フィールドを有し、前記属性フィールドの複数のビットを設定して、前記第２ディレクトリエントリを前記短いファイル名のみをサポートする前記アプリケーションプログラムからは見えなくするステップと、
を有することを特徴とする方法。
【請求項６１】
請求項５８または請求項６０のいずれかの方法において、前記第２ディレクトリエントリ及び前記少なくとも１つの追加ディレクトリエントリの各々に、そのディレクトリエントリに前記長いファイル名のどの部分が記憶されているかを示すユニークな符牒を記憶するステップを、さらに有することを特徴とする方法。
【請求項６２】
請求項６１に記載の方法において、前記符牒は前記第２ディレクトリエントリおよび追加のディレクトリエントリに記憶され、各符牒はファイルの短いファイル名の文字列としての使用が許されない不当に短い文字列を有することを特徴とする方法。
【請求項６３】
プロセッサ、記憶手段、ディレクトリエントリにアクセスするためのディレクトリサービスおよび前記ディレクトリエントリを使用してファイルにアクセスするためのファイルシステムを有するコンピュータシステムで実行する方法であって、前記プロセッサにより、
（ａ）前記ファイルおよびファイルの位置についての短いファイル名を有する第１ディレクトリエントリを作成するステップと、
（ｂ）第２ディレクトリエントリを作成するステップであって、前記第２ディレクトリエントリは前記ファイルのための少なくとも１つの長いファイル名の部分を保有し、前記長いファイル名は前記短いファイル名よりも多い文字を有し、前記第２ディレクトリエントリは、さらに複数のビットを持つ属性フィールドを有し、前記属性フィールドの複数ビットを設定して前記第２ディレクトリエントリを前記短いファイル名のみを使用するプログラムに対して見えなくするステップと、
（ｃ）前記ファイルにアクセスするために作成された第１ディレクトリエントリおよび第２ディレクトリエントリの１つに前記ディレクトリサービスによりアクセスするステップと
を実行することを特徴とする方法。
【請求項６４】
請求項６３に記載の方法において、前記プログラムはオペレーティングシステムであることを特徴とする方法。
【請求項６５】
請求項６３に記載の方法において、前記短いファイル名のみを使用するプログラムはアプリケーションプログラムであることを特徴とする方法。
【請求項６６】
請求項６３に記載の方法において、前記コンピュータシステムは作成された第１ディレクトリエントリおよび第２ディレクトリエントリを記憶する記憶手段を有し、前記第１ディレクトリエントリの記憶位置および第２ディレクトリエントリの記憶位置とは隣接することを特徴とする方法。
【請求項６７】
請求項６３に記載の方法において、長いファイル名部分の次の部分を有する少なくとも１つの追加のディレクトリエントリを作成するステップをさらに有することを特徴とする方法。
【請求項６８】
請求項６７記載の方法において、前記少なくとも１つの追加のディレクトリエントリを作成するステップは、前記第２ディレクトリエントリ及び前記少なくとも１つの追加のディレクトリエントリの各々の中に前記短いファイル名のチェック和を記憶するステップを有し、ここで、前記チェック和は前記ディレクトリエントリ中の前記長いファイル名をそれに適合した前記短いファイル名の前記第１ディレクトリエントリに関連づけるために使用されるものであることを特徴とする方法。
【請求項６９】
請求項６７に記載の方法において、前記第２ディレクトリエントリ及び前記少なくとも１つの追加のディレクトリエントリの各々の中に符牒を記憶し、長いファイル名のどの部分がそのディレクトリ中に記憶されているかを独特に示すステップをさらに有することを特徴とする方法。
【請求項７０】
請求項６９に記載の方法において、前記第２ディレクトリエントリおよび前記少なくとも１つの追加のディレクトリエントリ中に記憶された前記符牒は各ディレクトリエントリの先頭に記憶され、ファイルの短いファイル名の文字列としての使用が許されない不当に短い文字列を有することを特徴とする方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は一般にデータ処理システムに係り、より詳細には、長いファイル名と短いファイル名のための共通名称スペースに係る。
【０００２】
【従来の技術】
米国ワシントン州レドモンドのマイクロソフト・コーポテーションにより販売されているＭＳ−ＤＯＳバージョン５オペレーティングシステムのような多数のオペレーティングシステムは、短いファイル名しかサポートしない。ＭＳ−ＤＯＳバージョン５オペレーティングシステムでは、ファイル名が最大長さ１１文字である。各ファイル名は、８文字の主部分と、それに続く３文字の延長部とを有している。ＭＳ−ＤＯＳバージョン５オペレーティングシステムの例示的ファイル名は「ＥＸＡＭＰＬＥ１．ＥＸＥ」であり、「ＥＸＡＭＰＬＥ１」は主部分を構成し、「ＥＸＥ」は延長部を構成する。
【０００３】
【発明が解決しようとする課題】
各ファイル名は、ＭＳ−ＤＯＳバージョン５オペレーティングシステムのファイルシステムの制約により１１文字に限定される。このファイルシステムは、各ファイルがそれに関連したディレクトリーエントリーを有するようなディレクトリー構造を使用している。不都合なことに、ファイルのディレクトリーエントリーは、最大長さ１１文字のファイル名しかサポートしない。ファイル名の長さのこのような制限は、しばしばユーザにとって不満足なものとなる。１１文字の長さ制限では、ユーザは充分な記述のファイル名を使用することができず、多くの場合に、ユーザは、その記述用語の不便な省略形をファイル名に挿入せざる得ない。
【０００４】
そこで、本発明の目的は、長いファイル名をサポートするシステムを提供することである。
【０００５】
本発明の別の目的は、長いファイル名をサポートする一方、長いファイル名をサポートすることによる両立性へのインパクトを最小にするシステムを提供することである。
【０００６】
本発明の更に別の目的は、長いファイル名及び短いファイル名の両方に対して共通の名称スペースをサポートするシステムを提供することである。
【０００７】
【課題を解決するための手段】
本発明の第１の特徴によれば、メモリ手段及び処理手段を有するデータ処理システムにおける方法が実施される。この方法によれば、第１のディレクトリーエントリーが形成され、ファイルのためのメモリ手段に記憶される。この第１のディレクトリーエントリーは、そのファイルに対する第１ファイル名と、そのファイルに関する情報とを保持する。第２のディレクトリーエントリーも形成され、メモリ手段に記憶される。この第２のディレクトリーエントリーは、固定数の文字をもつ第２ファイル名の少なくとも１つの部分と、ファイルに関する情報とを保持する。第１又は第２のディレクトリーエントリーの一方がメモリ手段においてアクセスされ、そこに含まれた情報へのアクセスが得られる。
【０００８】
本発明の別の特徴によれば、データ処理システムは、ファイルの第１ディレクトリーエントリーと、ファイルの第２ディレクトリーエントリーと、オペレーティングシステムとを保持するメモリを備えている。第１ディレクトリーエントリーは、ファイルの第１ファイル名を含み、そして第２ディレクトリーエントリーは、ファイルの第２ファイル名を含んでいる。第２ファイル名は、短いファイル名よりも多数の文字を含む。又、データ処理システムは、オペレーティングシステムを実行するプロセッサであって、第１ディレクトリーエントリー又は第２ディレクトリーエントリーをアクセスしてファイルを位置決めするためのプロセッサも備えている。
【０００９】
本発明の更に別の特徴によれば、メモリを有するデータ処理システムにおける方法が実施される。この方法によれば、ファイルが形成されそしてファイルにはユーザが特定した長いファイル名が指定される。この長いファイル名がデータ処理システムで操作され、より少数の文字の短いファイル名が形成される。長いファイル名及び短いファイル名はメモリに記憶され、長いファイル名又は短いファイル名のいずれによってもファイルをアクセスすることができる。
【００１０】
本発明の更に別の特徴によれば、ファイルの第１ディレクトリーエントリーがメモリ手段に記憶されるような方法が実施される。この第１ディレクトリーエントリーは、ファイルの短いファイル名を保持する。この短いファイル名は、せいぜい、アプリケーションプログラムによって許容できる最大数の文字を含む。第２ディレクトリーエントリーもファイルに対してメモリ手段に記憶される。この第２ディレクトリーエントリーは、ファイルの長いファイル名の少なくとも第１部分を保持する。この長いファイル名は、アプリケーションプログラムによって許容できる最大数の文字よりも多数の文字を含む。アプリケーションプログラムは、データ処理システムのプロセッサにおいて実行される。アプリケーションプログラムは、短いファイル名によってファイルを識別する。
【００１１】
本発明の更に別の特徴によれば、第１ディレクトリーエントリーがファイルに対してメモリ手段に記憶されるような方法が実施される。この第１ディレクトリーエントリーは、オペレーティングシステムによって許容できる最大数の文字をせいぜい含むようなファイルの短いファイル名を保持する。第２ディレクトリーエントリーがファイルに対しメモリ手段に記憶される。この第２ディレクトリーエントリーは、オペレーティングシステムによって許容できる最大数の文字以上を含むファイルの長いファイル名を保持する。この場合に、オペレーティングシステムは、長いファイル名は使用せず、短いファイル名のみを使用する。第１ディレクトリーエントリーはオペレーティングシステムによってアクセスされ、ファイルが位置決めされる。
【００１２】
【実施例】
以下、添付図面を参照し、本発明の好ましい実施例を詳細に説明する。ここに述べる本発明の実施例は、長いファイル名（即ち、ＭＳ−ＤＯＳバージョン５オペレーティングシステムのような現在のオペレーティングシステムが許容できるものより実質的に多数の文字を有するファイル名）を使用するようにサポートするものである。「短いファイル名」という用語は、以下、許容される最大文字数に関して小さな限界（例えば、１１文字）を有するファイル名を指すものとして使用する。好ましい実施例では、長いファイル名は、短いファイル名と共通の名称スペースに与えられる。システムの各ファイルに対して長いファイル名及び短いファイル名が与えられる。共通の名称スペースの分担は、長いファイル名及び短いファイル名に対して個別のディレクトリーエントリーを設けることによって実現される。各ファイルは、それに関連した短いファイル名のディレクトリーエントリーを有すると共に、少なくとも１つの長いファイル名のディレクトリーエントリーを有してもよい。短いファイル名は、ＭＳ−ＤＯＳバージョン５オペレーティングシステムにおいて既に与えられるものと同様である。長いファイル名は、以下に詳細に述べるように、最大長さが２５５文字までである。好ましい実施例は、ＭＳ−ＤＯＳバージョン５オペレーティングシステムでの実施について説明する。
【００１３】
長いファイル名をサポートするための潜在的な両立性の問題は、短いファイル名の問題に対する１つの解決策を考えることによって明白である。この解決策は本発明の部分ではなく、従って、この提案された解決策で悩まされている両立性の問題を好ましい実施例がいかに回避するかについてのみ説明する。この解決策は、オペレーティングシステムがファイル名に対して許容する文字数を増加するだけで長いファイル名をサポートするものである。
【００１４】
この解決策には２つの大きな問題がある。先ず第１に、多くのシステムの既存のアプリケーションベースは、短いファイル名（例えば、１１文字以下）のみを使用し、長いファイル名（例えば、２５５文字まで）のみを使用するように準備されていない。例えば、アプリケーションは、短いファイル名を保持するに充分な大きさのバッファを割り当て、オペレーティングシステムが長いファイル名データをこのバッファに入れようと試みても、バッファがオーバーフローして、アプリケーションデータを予期せずにオーバーライトさせてしまう。第２に、あるディスクユーティリティプログラムは、ファイルシステムのボリュームを直接アクセスし、従って、オペレーティングシステムに頼らずにファイルをアクセスする。長いファイル名をサポートするようにファイルシステムが変更された場合には、ディスクユーティリティプログラムとの両立性の問題が生じる。
【００１５】
これに対し、ここに開示する本発明の好ましい実施例は、各ファイルごとに長いファイル名と短いファイル名の両方を設けることにより、長いファイル名をサポートすることによる両立性へのインパクトを最小にしようとするものである。その結果、短いファイル名を要求するアプリケーション及びユーティリティは、依然として短いファイル名を得ることができ、そして長いファイル名を使用するアプリケーションは、長いファイル名を得ることができる。
【００１６】
本発明の好ましい実施例は、ソフトウェア又はファームウェアとして実現されるコードとして実施できる。長いファイル名をサポートするために、本発明の好ましい実施例は、多数の長いファイル名のアプリケーションプログラムインターフェイス（ＡＰＩ）を与える。これらのＡＰＩは、オペレーティングシステムで標準である従来の短いファイル名のインターフェイスと共に与えられる。長いファイル名のＡＰＩは、長いファイル名に対するファイルのオペレーション及びディレクトリーエントリーをサポートする。ＡＰＩは、ファイル属性ファンクション、ファイル削除ファンクション、ファイルディレクトリーファンクション、ファイル探索ファンクション、ファイルオープン／形成ファンクション及びファイル改名ファンクションを含んでいる。
【００１７】
本発明の好ましい実施例は、図１に示すようなデータ処理システム１０において実施される。このデータ処理システム１０は、アキュムレータ（ＡＬ）レジスタ１５を含む標準セットのレジスタ１３を伴う中央処理ユニット（ＣＰＵ）１２と、メモリ１６と、入力／出力（Ｉ／Ｏ）装置１４とを備えている。ＣＰＵ１２は、データ処理システム１０のオペレーションを管理し、メモリ１６及びＩ／Ｏ装置１４にアクセスする。メモリ１６は、ＲＡＭ及びディスク記憶装置の両方を含む。メモリ１６は、オペレーティングシステム１７（図１では「Ｏ．Ｓ．」と示された）を保持し、これは、長短のファイル名ＡＰＩを含む。当業者に明らかなように、本発明は、他の適当なデータ処理システムにおいて実施することもできる。
【００１８】
長いファイル名のＡＰＩ及び短いファイル名のＡＰＩに対する全てのファンクションはオペレーティングシステム１７に組み込まれる。これらのファンクションは、Ｉｎｔ  ２１ｈ割り込み呼び出し（２１ｈは、１６進表示で２１を示す）によりサポートされる。換言すれば、全てのファンクションは、Ｉｎｔ  ２１ｈ割り込みを実行することによって呼び出され、Ｉｎｔ  ２１ｈ割り込みによって呼び出されたファンクションは、以下で詳細に述べるように、レジスタに入れられた値によって特定される。Ｉｎｔ  ２１ｈインターフェイスは、ＭＳ−ＤＯＳバージョン５オペレーティングシステムで与えられるものと同様であるが、このインターフェイスは、長いファイル名に対するファンクションの呼び出しもサポートする。長いファイル名のＡＰＩを呼び出す際には、呼び出されるべきファンクション番号が、割り込み開始の前に、図１のＣＰＵ１２のようなプロセッサのＡＬレジスタ１５に入れられる。
【００１９】
各ファイルごとに長いファイル名と短いファイル名の両方をサポートするために、好ましい実施例では、短いファイル名のディレクトリーエントリー１８（図２）を与えると共に、各ファイルに対する少なくとも１つの長いファイル名のディレクトリーエントリー２０が共通名称スペースに与えられる。各ファイルは、長いファイル名と、それに関連した短いファイル名とを有する。長いファイル名のディレクトリーエントリー２０は、短いファイル名のディレクトリーエントリーに長いファイル名を正しく記憶できないときにのみ形成される。長いファイル名のディレクトリーエントリー２０は、それに対応する短いファイル名のディレクトリーエントリー１８に隣接して、メモリ１６に使用される共通名称スペースの一部として記憶される。更に、長いファイル名のディレクトリーエントリー２０は、短いファイル名のみをサポートするオペレーティングシステムとの両立性の問題を最小にするように構成される。
【００２０】
図２は、ここに述べる好ましい実施例においてファイルに対するディレクトリーエントリー１８及び２０の一例を示す。短いファイル名のディレクトリーエントリー１８は、多数の長いファイル名のディレクトリーエントリー２０と共に設けられる。ファイルに対して設けられる長いファイル名のディレクトリーエントリー２０の数（ゼロの長いファイル名のディレクトリーエントリーを含む）は、その長いファイル名における文字の数及び形式によって左右される。以下で詳細に述べるように、各々の長いファイル名のディレクトリーエントリー２０は、長いファイル名の２６文字までを保持できる。長いファイル名のディレクトリーエントリー２０は、その長いファイル名における文字の数に基づいて動的に割り当てられる。例えば、５０文字の長いファイル名をもつファイルは、２つの長いファイル名のディレクトリーエントリー２０が割り当てられ、一方、７０文字の長いファイル名をもつファイルは、３つの長いファイル名のディレクトリーエントリー２０が割り当てられる。上記したように、長いファイル名は最大２５５文字を有することがあり、従って、いかなるファイルに対しても最大１０個の長いファイル名のディレクトリーエントリー２０が割り当てられる。ファイル名当たり最大２５５個の文字は、オペレーティングシステム１７の最大経路長さ（２６０文字）制限によるものである。
【００２１】
長いファイル名がそれに割り当てられた長いファイル名のディレクトリーエントリー２０に得られる全てのスペースを完全に満たさない多数の場合がある。このような場合には、その長いファイル名の最後の文字の後にゼロ終端子が配置され、付加的なスペース即ち無意味のデータが返送されないようにする。この余分なスペースは０ＦＦｈで埋められる（但し、「ｈ」は１６進表示方の使用を指示するものである）。
【００２２】
図３は、短いファイル名のディレクトリーエントリー１８のフォーマットを示している。このディレクトリーエントリーの各フィールドは、このディレクトリーエントリーのスタートアドレスに対する異なるオフセットで始まる。ファイル名フィールド２２は、短いファイル名の主部分（即ち、最初の８文字）を保持する。短いファイル名の主部分は短いファイル名の８文字までを保持するので、ファイル名フィールド２２は長さが８バイトであり、オフセット００ｈで始まる。このファイル名フィールド２２の後には、オフセット０８ｈでファイル延長フィールド２４が続く。このファイル延長フィールドは、短いファイル名の延長部分の文字を保持する。この延長フィールド２４は、長さが３バイトである（３文字をエンコードする）。
【００２３】
延長フィールド２４の後に、オフセット０Ｂｈでファイル属性フィールド２６が続く。このファイル属性フィールド２６は、ビットがセットされるかどうかに基づいてその関連ファイルに関する情報を特定する多数のビットを含む。
【００２４】
短いファイル名のディレクトリーエントリー１８は、指定されたフィールド２８も含んでいる。この指定されたフィールド２８はオフセット０Ｃｈで始まり、長さが１０バイトである。短いファイル名のディレクトリーエントリー１８は、更に、最後の更新時間フィールド３０と、最後の更新日付フィールド３２とを含んでいる。最後の更新時間フィールド３０は、長さが２バイトであり、オフセット１６ｈで始まる。最後の更新日付フィールド３２は、長さが２バイトであり、オフセット１８ｈで始まる。
【００２５】
短いファイル名のディレクトリーエントリー１８は、開始ディスククラスターフィールド３４を含んでいる。この開始ディスククラスターフィールド３４は、そのファイルの第１のディスククラスターが保持されているメモリ１６（図１）の区分（即ち、ファイルに対する割り当てチェーンの開始部）を指すポインタを保持する。この開始ディスククラスターフィールド３４（図３）は、オフセット１Ａｈに記憶され、長さが２バイトである。この開始ディスククラスターフィールド３４の後にファイルサイズフィールド３６が続く。このファイルサイズフィールド３６は、短いファイル名のディレクトリーエントリー１８に関連したファイルによって占有されるメモリの量を特定する値を保持する。ファイルサイズフィールド３６は、長さが４バイトであり、オフセット１Ｃｈで始まる。
【００２６】
図４は、各々の長いファイル名のディレクトリーエントリー２０に使用されるフォーマットを示している。この長いファイル名のディレクトリーエントリー２０は、更に、デジタル符諜を保持する符諜フィールド３８を含んでいる。この符諜フィールド３８は、一連の関連する長いファイル名のディレクトリーエントリーにおいて長いファイル名のディレクトリーエントリー２０の順序を特定するのに有用である。例えば、第１の長いファイル名のディレクトリーエントリーは、それが第１のエントリーであることを特定する符諜フィールド３８を含み、そして各次々の長いファイル名のディレクトリーエントリーは、ファイルに対する一連の長いファイル名のディレクトリーエントリーの中でその長いファイル名のディレクトリーエントリーがどこに適合するかを特定する符諜フィールド３８を含んでいる。この符諜フィールド３８は、主として、ファイルシステムボリュームを直接アクセスするユーティリティプログラムに使用するために設けられる。符諜フィールド３８は、長さが１バイトであり、オフセット００ｈで始まり、これは、短いファイル名のディレクトリーエントリー１８のファイル名フィールド２２（図３）の開始部である。符諜フィールド３８は、長いファイル名のディレクトリーエントリーにおいてその位置が与えられると、あるユーティリティプログラムにより短いファイル名の一部分と間違えられ易い。そこで、符諜フィールド３８は、不当に短いファイル名文字のみを含み、短いファイル名のみをサポートするシステム又はユーティリティによってその文字が容易に変えられないようにする。
【００２７】
長いファイル名のディレクトリーエントリー２０は、長いファイル名の文字を保持するために設けられた３つのフィールド４０、４８及び５２を含んでいる。第１の長いファイル名フィールド４０は、オフセット０１ｈで始まり、長いファイル名の１０文字までを保持する（即ち、長さが１０バイトである）。第２の長いファイル名フィールド４８は、オフセット０Ｅｈで始まり、長いファイル名の１２文字（即ち、１２バイト）までを保持する。最後に、第３の長いファイル名フィールド５２は、オフセット１Ｃｈで始まり、長いファイル名の４文字（即ち４バイト）までを保持する。従って、累積的に、これら３つのフィールド４０、４８及び５２は、長いファイル名の２６文字までを保持する。これら長いファイル名フィールド４０、４８及び５２は、フィールド４０で始まって順次に埋められ、フィールド４８そして５２と順次に埋められる。
【００２８】
長いファイル名のディレクトリーエントリー２０は、短いファイル名のディレクトリーエントリー１８と異なるが、短いファイル名のディレクトリーエントリー１８（図３）について上記したのと同じ特定のオフセットに幾つかの同様のフィールドを含んでいる。このように、長いファイル名をサポートしないオペレーティングシステムも、長いファイル名のディレクトリーエントリー２０によって妨げられることはない。例えば、長いファイル名のディレクトリーエントリー２０は、短いファイル名のディレクトリーエントリーに設けられたファイル属性フィールド２６（図３）と同様のファイル属性フィールド４２を含んでいる。
【００２９】
長いファイル名のディレクトリーエントリー２０はチェック和フィールド４４を含み、これは長さが１バイトで、オフセット０Ｄｈにある。このチェック和フィールド４４は、短いファイル名のチェック和を含む。チェック和バイトは、以下に詳細に述べるように、関連する短いファイル名に対して長い名称が有効であることを確保すると共に、短いファイル名のディレクトリーエントリー１８を指すポインタ（これはディスクユーティリティプログラムの助けとなる）として働くために使用される。オフセット０Ｃｈには、フラグフィールド４３が保持される。このフラグフィールド４３は、ユニコード文字が使用されるときにセットされるフラグビットを保持する。
【００３０】
更に、長いファイル名のディレクトリーエントリー２０の開始ディスククラスターフィールド５０（図４）は、短いファイル名のディレクトリーエントリー１８の開始ディスククラスターフィールド３４（図３）と同様である。しかしながら、これは、長いファイル名のディレクトリーエントリーでは、常にゼロの一定値を有する。
【００３１】
以上の説明は、長いファイル名と短いファイル名の両方をサポートするためにディレクトリーエントリー１８及び２０（図２）をいかに使用するかに向けられた。以下の説明では、本発明の好ましい実施例によってこれらディレクトリーエントリーがいかにサポートされるかを述べる。
【００３２】
新たなファイルが形成されるときには、好ましい実施例では、その新たなファイルに対して長いファイル名と短いファイル名の両方をサポートする段階をとらねばならない。好ましい実施例が長いファイル名と短いファイル名の両方をいかにサポートするかを説明するために、先ず、ディレクトリーエントリーの形成を説明し、次いで、ファイル名の形成を説明する。図５は、新たなファイルを形成する際に実行される基本的な段階を示すフローチャートである。最初に、長いファイル名のＡＰＩ又は短いファイル名のＡＰＩのいずれかを用いて新たなファイルが形成される（ステップ５４）。両種類のＡＰＩはファイルの形成をサポートする。ファイルを形成するのに使用されるＡＰＩの形式に基づいて、ファイルは最初に長いファイル名及び／又は短いファイル名を有する。換言すれば、長いファイル名のＡＰＩでファイルが形成される場合には、そのファイルは最初に長いファイル名を有し、そしてファイルが短いファイル名のＡＰＩで形成される場合には、そのファイルは最初に短いファイル名を有するが、これはそのファイルに対する長いファイル名であってもよい。
【００３３】
少なくとも１つの長いファイル名のディレクトリーエントリー２０がファイルに対して形成される。先ず、長いファイル名のディレクトリーエントリー２０が要求されるかどうかの判断がなされる（ステップ５７）。長いファイル名が短いファイル名のディレクトリーエントリー１８に正しく適合しない場合には、長いファイル名のディレクトリーエントリー２０が要求される。長いファイル名のディレクトリーエントリー２０は、長いファイル名における文字数に基づいて動的に割り当てられる。少なくとも、図３に示すフォーマットを有する短いファイル名のディレクトリーエントリー１８が形成される。従って、システムは、いかに多くの長いファイル名のディレクトリーエントリーが必要であるかを調べるようにチェックし、そして短いファイル名のディレクトリーエントリーと、必要とされる数の付加的な長いファイル名のディレクトリーエントリーとに対するスペースを割り当てる（ステップ５８）。短いファイル名のディレクトリーエントリー１８と、少なくとも１つの長いファイル名のディレクトリーエントリー２０との両方が形成されるときには、両形式のディレクトリーエントリーに対するスペースが同時に割り当てられる。次いで、ステップ５９において、長い及び短いファイル名のディレクトリーエントリー１８及び２０が埋められる。しかしながら、長いファイル名のディレクトリーエントリーが必要とされない場合には、スペースは割り当てられない（即ち、ステップ５８及び５９はスキップされる）。
【００３４】
図６は、長いファイル名のディレクトリーエントリー２０を埋める（図５のステップ５９）際に実行されるステップを示すフローチャートである。これらのステップは所与の順序で示すが、この図示された順序で実行する必要がないことは当業者に明らかであろう。他の順序も等しく受け入れられる。
【００３５】
ファイル属性フィールド４２に隠されたビットは、１の値をもつようにセットされる（ステップ６２）。図７は、ファイル属性フィールド４２に含まれるビットを示している。隠されたビットは図７に文字「Ｈ」で示されており、ファイル属性フィールド４２のビット位置１に現れる。この隠されたビットが１の値にセットされたときには、ディレクトリーエントリーが隠され、ディレクトリーエントリー１８及び２０の通常のサーチから除外される。この隠されたビットをセットすることにより、長いファイル名のディレクトリーエントリー２０（図２）は従来のディレクトリーエントリーサーチでサーチされない。この隠されたビットは、ダウンレベルシステム（即ち短いファイル名しかサポートしないシステム）が長いファイル名のディレクトリーエントリー２０を調べることがないようにセットされる。
【００３６】
ファイル属性フィールドの読み取り専用ビットもセットされる（図６のステップ６４）。この読み取り専用ビットは、図７に文字「Ｒ」で示されており、ファイル属性フィールド４２のビット位置０に現れている。この読み取り専用ビットを１の値にセットすることは、ファイルが読み取り専用ファイルであり、ファイルに書き込む試みは失敗に終わることを示す。
【００３７】
ファイル属性フィールド４２のシステムビットは、１の値にセットされる（図６のステップ６６）。このシステムビットは図７に文字「Ｓ」で示されており、ファイル属性フィールド４２のビット位置２に現れる。システムビットを１の値にセットすることは、ファイルをシステムファイルと指定し、ディレクトリーエントリー１８及び２０の通常のサーチからそのディレクトリーエントリーを除外する。システムビットを１の値にセットすることは、短いファイル名しかサポートしないダウンレベルのオペレーティングシステムから長いファイル名のディレクトリーエントリー２０を隠すことになる。
【００３８】
次いで、ファイル属性フィールド４２においてボリュームラベルビットがセットされる（図６のステップ６８）。このボリュームラベルビットは、図７に文字「Ｖ」で示されており、ファイル属性フィールド４２のビット位置３に現れる。このボリュームラベルビットを１の値にセットすると、長いファイル名のディレクトリーエントリーがあるディスクユーティリティプログラムの「チェックディスク」オペレーションから隠されることになる。例えば、ＭＳ−ＤＯＳバージョン５．０は、ＣＨＫＤＳＫという名称のユーティリティを含んでいる。ボリュームラベル属性をセットすると、ＣＨＫＤＳＫから長いファイル名のディレクトリーエントリーが隠される。
【００３９】
次いで、図６のフローチャートに説明を戻す。符諜バイトフィールド３８（図４）はデジタル符諜で埋められる（図６のステップ７０）。上記したように、この符諜は、ファイルに対する長いファイル名のディレクトリーエントリー２０の順序を区別する。図４のチェック和フィールド４４は、短いファイル名の適当なチェック和で埋められる（図６のステップ７２）。このチェック和バイトフィールド４４（図４）は、短いファイル名のチェック和を保持することにより長いファイル名のディレクトリーエントリー２０をそれに適した短いファイル名に関連させるのに使用される。開始ディスククラスターフィールド５０（図４）はゼロにセットされる（図６のステップ７４）。従って、長いファイル名のディレクトリーエントリー２０にはデータが割り当てられない。これは、長いファイル名のディレクトリーエントリーをダウンレベルシステムにおいて見えなくする助けをする。最後に、長いファイル名の文字に対するビットが、長いファイル名のディレクトリーエントリー２０の適当な長いファイル名フィールド４０、４８及び５２（図４）に記憶される（図６のステップ７６）。
【００４０】
上記したようにファイル属性フィールド４２（図７）のビットをセットすると共に、開始ディスククラスターフィールド５０（図４）をゼロにセットすることにより、本発明の好ましい実施例は、短いファイル名しかサポートしないオペレーティングシステム（即ち、ダウンレベルシステム）に対して長いファイル名のディレクトリーエントリーがほぼ見えないようにする。しかし、長いファイル名をもつファイルは、依然として、そのダウンレベルオペレーティングシステムにおいて許される。長いファイル名のディレクトリーエントリーは、そのダウンレベルシステムのディレクトリーエントリーリストにおいて見ることができない。ファイル属性フィールドにおいてビットをセットすることと、開始ディスククラスターフィールド５０をゼロにすることとの組み合わせにより、長いファイル名のディレクトリーエントリーはダウンレベルシステムに見えなくなる。従って、ダウンレベルのオペレーティングシステムに長いファイル名をもつことにより生じる両立性の問題が最小にされる。更に、ディレクトリーエントリーの順序にスキューを生じさせることのあるユーティリティプログラムは問題でなくなる。符牒フィールド４０（図４）及びチェック和フィールド４４は、順序ずれしたエントリーを再構成するのに関連して使用することができる。特に、チェック和フィールド４４は、長いファイル名のディレクトリーエントリー２０を短いファイル名のディレクトリーエントリーに関連付けるのに使用され、長いファイル名のディレクトリーエントリーの符牒フィールド４０は、その関連する長いファイル名のディレクトリーエントリーを適切な順序に割り当てるのに使用される。
【００４１】
上記説明では、短いファイル名のＡＰＩ又は長いファイル名のＡＰＩのいずれかを使用してファイル名が形成されることに注目した。従って、ファイルが形成されたときには、そのファイルは、長いファイル名のＡＰＩが使用されたか又は短いファイル名のＡＰＩが使用されたかに基づいてユーザにより指定された長いファイル名又は短いファイル名のいずれかを有している。ここに述べる本発明の好ましい実施例では、欠けている方の短いファイル名又は長いファイル名が自動的に形成される。例えば、短いファイル名のＡＰＩを用いてファイルが形成された場合には、ここに述べる好ましい実施例では、それに対応する長いファイル名（短いファイル名と同じである）が確立される。同様に、長いファイル名のＡＰＩを用いてファイルが形成される場合には、好ましい実施例では、短いファイル名のディレクトリーエントリー１８に記憶された対応する短いファイル名が形成される。図８は、短いファイル名がユーザによって与えられるときに好ましい実施例によって実行されるステップを示している。特に、ユーザは、短いファイル名を与え（図８のステップ７８）、短いファイル名が長いファイル名として使用される（ステップ８０）。ユーザが短いファイル名を与えるときには、システムは、その名称が有効な短いファイル名であるかそして見掛け上競合する既存のファイル（図示せず）があるかどうかをチェックする。フォーマット又は競合について問題がない場合には、その与えられた短いファイル名がファイルに指定される。次いで、その短いファイル名は長いファイル名として使用され、そのファイルに対する長いファイル名のディレクトリーエントリー２０は存在しない。
【００４２】
長いファイル名のＡＰＩを用いてファイルが形成されるときには、それに対応する短いファイル名の形成はかなり複雑である。図９は、このような場合に短いファイル名を形成するように実行されるステップを示すフローチャートである。最初に、ユーザにより長いファイル名が与えられる（図９のステップ８２）。次いで、好ましい実施例では、その長いファイル名が有効な短いファイル名であるかどうかチェックされる（ステップ８４）。その長いファイル名が有効な短いファイル名である場合には、その長いファイル名が短いファイル名として使用される（ステップ８６）。
【００４３】
しかしながら、長いファイル名が有効な短いファイル名と見なされない場合には、長いファイル名からスペースを除去しそしてそれにより生じる文字を提案された短いファイル名として使用することにより短いファイル名が形成される（ステップ８８）。最初のピリオド、後続するピリオド、及び最後の埋められたピリオドの前の余分なピリオドが、その提案された短いファイル名から除去される（ステップ９０）。更に、不当に短いファイル名文字が下線に変換される（ステップ９２）。その後に、その提案された短いファイル名が延長部を含んでいるかどうかのチェックが行われる（ステップ９４）。その提案された短いファイル名が延長部を含む場合には、そのファイル名の先行する主部分が６文字の長さに切断され、そして延長部の先行する３文字が使用される（ステップ９６）。従って、残りの文字の先行する部分に「−１」が添付され（ステップ９８）、短いファイル名として働くようにされる。
【００４４】
修正された長いファイル名が延長部を含まない場合には（ステップ９４）、その長いファイル名は６文字に切断され（ステップ１００）、そしてその切断されたファイル名に「−１」が添付されて（ステップ１０２）、短いファイル名として働くようにされる。上記場合の両方において（即ちステップ９４が「イエス」の場合と「ノー」の場合）、好ましい実施例では、その提案された短いファイル名が他の短いファイル名のいずれかと衝突するかどうかチェックされる（ステップ１０４）。その提案された短いファイル名が別の短いファイル名と衝突しない（即ち他の同一の短いファイル名が存在しない）場合には、その提案された短いファイル名がファイルの短いファイル名として指定される（ステップ１１２）。その提案された短いファイル名が別の短いファイル名と衝突する場合には、その名称に添付される文字が１だけ増加される（ステップ１０６）。従って、数値が最初に「−１」である場合には、その数値がステップ１０６において１だけ増加されて、「−２」となる。好ましい実施例では、新たに提案された短いファイル名が８文字の長さを越えるかどうかチェックされる（ステップ１０８）。新たに提案された短いファイル名が８文字の長さを越えない場合には、その提案された短いファイル名が別の短いファイル名と衝突するかどうかのチェックが繰り返される（ステップ１０４）。ファイル名における文字数が８文字の長さを越えたときには、その新たな短いファイル名が８文字に短縮される（ステップ１１０）。特に、ファイル名の先行部分（拡張部は無視する）の長さとチルダ(tilda) 及び数値との和が８文字を越える場合には、その新たに提案された短いファイル名（延長部なし）が８文字内に適合するまでファイル名の先行部分が短縮される。例えば、ファイル名「ＭｏｎＫｅｙ−１０．ＥＸＥ」は、「ＭｏｎＫｅ−１０．ＥＸＥ．」に短縮される。上記ステップ１０４、１０６、１０８及び１１０は、適当な長さであって且つ別の短いファイル名と衝突しない短いファイル名がファイルに対して形成されるまで繰り返される。
【００４５】
本発明の好ましい実施例は、短いファイル名の問題に対する解決策を提供し、しかもその解決策の両立性への影響を最小にする。各ファイルに対し長いファイル名及び短いファイル名を与える共通名称スペースの使用により、ファイルを、短いファイル名をサポートするアプリケーション及び長いファイル名をサポートするアプリケーションの両方に使用できるようにする。
【００４６】
本発明を好ましい実施例について説明したが、特許請求の範囲に規定された本発明の範囲から逸脱せずに、種々の変更がなされ得ることが当業者に明らかであろう。
【図面の簡単な説明】
【図１】本発明の好ましい実施例に用いるデータ処理システムのブロック図である。
【図２】短いファイル名のディレクトリーを長いファイル名のディレクトリーエントリーに隣接する位置に記憶するところを示すブロック図である。
【図３】本発明の好ましい実施例における短いファイル名のディレクトリーエントリーのフォーマットを示す図である。
【図４】本発明の好ましい実施例における長いファイル名のディレクトリーエントリーのフォーマットを示す図である。
【図５】新たなファイルを形成するときに本発明の好ましい実施例によって実行されるステップを示すフローチャートである。
【図６】本発明の好ましい実施例において長いファイル名のディレクトリーエントリーを形成する際に実行されるステップを示すフローチャートである。
【図７】図４の長いファイル名のディレクトリーエントリーのファイル属性フィールドにおけるビットを示すブロック図である。
【図８】本発明の好ましい実施例において短いファイル名がユーザによって与えられたときに実行されるステップを示すフローチャートである。
【図９】本発明の好ましい実施例において長いファイル名がユーザによって与えられたときに実行されるステップを示すフローチャートである。
【符号の説明】
１０  データ処理システム
１２  中央処理ユニット
１３  レジスタ
１４  Ｉ／Ｏ装置
１５  アキュムレータレジスタ
１６  メモリ
１７  オペレーティングシステム
１８  短いファイル名のディレクトリーエントリー
２０  長いファイル名のディレクトリーエントリー
【図１】
0004077047.tif 000002
【図２】
0004077047.tif 000003
【図３】
0004077047.tif 000004
【図４】
0004077047.tif 000005
【図５】
0004077047.tif 000006
【図６】
0004077047.tif 000007
【図７】
0004077047.tif 000008
【図８】
0004077047.tif 000009
【図９】
0004077047.tif 000010