長いファイル名

長いファイル名のサポートは、DOSで使用される8.3形式ファイル名命名方式のマイクロソフトによる下位互換性のある拡張である。ロングファイル名、ロングファイルネームとも。長いファイル名は、.jpg, .tif, .htm, .xhtなどの特殊な短縮名ではなく、.jpeg, .tiff, .html, .xhtmlなどの他のオペレーティングシステムで一般的な長いファイル名の拡張子を含む、よりわかりやすくすることができる。この標準は、1994年のWindows NT 3.5で最初に実装されて以来、ファイルアロケーションテーブルファイルシステムと共通である。

古いオペレーティングシステムとの互換性を維持するために、マイクロソフトは、長いファイル名から8.3形式のファイル名を生成し、それをファイルに関連付ける方法を考案した。

1. 互換性の問題
---------

マイクロソフトは、FATファイルシステムにLFNのサポートを実装し、長い名前を格納するためにボリュームラベルタイプの隠しディレクトリエントリを使用している。この方式はVFATと呼ばれ、ボリュームラベルは、通常、プログラムやオペレーティングシステムコンポーネントによって無視されるため、互換性を保つために選択された。古いOS上で動作するプログラムは、引き続き短いファイル名でアクセスでき、新しいLFN対応のOSやプログラムは、長い名前を使用することができる。

LFNサポートがWindows 95の形でDOSベースのオペレーティングシステムに初めて導入されたとき、古いプログラムはいくつかの問題を引き起こした。たとえば、WindowsがDOSモードの時にセクタレベルのディレクトリ操作を行うDOSプログラムは、長いファイル名情報を破壊する可能性があるため、デフォルトでは、このモードでハードディスクへのセクタレベルのアクセスは禁止されていた。

プレーンDOSで起動すると、VFAT LFNドライバがインストールされていない限り、長いファイル名は表示されない。マイクロソフトは、Windows 3.1xのファイル管理ソフトであるFile Managerを含む、古いプログラムの多くでLFNをサポートしなかった。Windows NTはNT 3.1のリリース以降のNTFSファイルシステムでLFNをサポートし、File Managerを含むすべてのユーティリティはLFNをサポートするように更新された。NT 3.5ではWindows 95の準備としてFAT LFNのサポートが追加された。ただし、File ManagerのWindows 95バージョンはWindows for Workgroups 3.11から提供された。

OS/2は、FATファイルシステム用のLFNを.LONGNAME拡張属性に格納しているが、これはマイクロソフトの実装と互換性がなく、OS/2の標準をサポートするツールにしか表示されない。パス名によるファイルへのアクセスを提供する多くのAPIは、サポートされているドライバなしでは、新しい長い名前を表示できない。

1.1. 制限
-------

FAT LFNの実装は、より古く、より限定された命名システムの上に構築されているため、最初の6文字が同じファイルをあまりに多数を作成しようとすると、必然的に複雑になる。また、FAT12とFAT16はハードディスク上の512個のルートディレクトリエントリしかスペースを確保していないため、ルートディレクトリにファイルやフォルダを作成する際に問題が発生する可能性が高くなる。長いファイル名は複数のディレクトリエントリを使用するため、この問題はルートディレクトリ内のファイルまたはフォルダが512未満の場合に発生する可能性がある。最大長の24個の長いファイル名用のスペースしかない。この問題はFAT32ボリュームには存在しない。

長いファイル名システムでは、空白と英数字以外の文字を含め、最大長255文字のUCS-2文字が使用できる。これは、2バイトのUnicode文字をそれぞれ13文字ずつ、最大20個までのディレクトリエントリを連結することで実現される。パス名の最大長は256文字で、これにはすべての親ディレクトリとファイル名を含む。255文字の大文字小文字が混在した長いファイル名は、任意のドライブのルートフォルダにあるファイル、またはサブフォルダを持たないフォルダに対してのみ使用可能である。

2. VFAT LFNドライバ
---------------

以下は、Windows 95で使用されているようなVFATロングファイル名のサポートを提供するために使用できるドライバのリストである。DOSLFNのようなドライバはほとんどすべてのバージョンのDOSでロードでき、MS-DOS 7.10のようなLFN自体をサポートしているDOSバージョンで最適に動作するため、DIRなどのDOSコマンドでも長いファイル名を表示できる。



3. その他の実装
---------

LFNサポートがFATファミリのファイルシステムに実装される前は、さまざまなファイルマネージャが、より長いファイル記述を添付して維持するための独自の方法を提供していた。最初にそうしたのは、内蔵DESCRIBEコマンドと対応するDESCRIPT.IONDESCRIPT.IONファイルを持つ代替コマンドラインプロセッサJP Software 4DOSとJP Software NDOSである。後者は、各ディレクトリ内にあるオプションの隠しファイルで、ディレクトリ内にあるファイル名の行ベースのリストを、それらのテキスト説明とオプションのメタデータエントリと共に格納する。説明文は最大511文字までの長さがあり、DIRリストで長いファイル名と短いファイル名の別名並んで表示されるのと同様に、ファイル名に沿って表示される。あるファイルに対するエントリが存在する場合、これらのコマンドラインプロセッサを使用して操作を行う限り、そのエントリはファイルと共にコピーおよび移動される。この方式は、4OS2, 4NT / Take Commandなどの後継プログラムによって引き続き維持されている。これは、Volkov Commander 、DOS Navigator 、Open DOS Navigator 、Necromancer's DOS Navigator 、Windows Commander、Total Commander、Double Commander、7-Zip、XnView、ACDSee、Newsbin Pro、V、FreeCOM、および一部のCUI_LIBベースのアプリケーションプログラムでも採用されている。

1986年以降、シャープX68000コンピュータのオペレーティングシステムであるHuman68Kは、拡張FATファイルシステムに基づいている。ファイル名には最大18.3文字まで使用でき、大文字と小文字を区別して使用できる。大文字のみの8.3形式のファイル名の使用に制限されている場合、Human68Kフロッピーは、日本の1232 KiB標準FATフロッピー形式List of floppy disk formatsと完全に互換性がある。このフォーマットは、NEC PC-9800、富士通FMRおよびFM Townsシリーズのコンピュータで使用されているdate=February 2015}}。

Novell NetWareバージョン 3.x および 4.x ボリュームNetWare File Systemは、追加のNetWare Loadable Moduleをロードすることで、マイクロソフト互換の長いファイル名もサポートできる。

VFAT互換方式を実装せずにJavaアプリケーションをサポートするために、FlexOSベースのIBM 4690 OSバージョン2では、長いファイル名をFATファイルシステムに下位互換性のある方法で保存する独自の仮想ファイルシステムアーキテクチャを導入した。これを有効にすると、実際のファイル名は元のドライブ文字の下で利用可能であるのに対し、仮想ファイル名は別の論理ドライブ文字の下で利用可能になる。

4. 参照項目
-------

TRANS.TBL
Rock Ridge 
Joliet
Romeo
8.3ファイル名
6.3ファイル名
ファイル名
ファイルシステム
ラージファイルサポート

5. 脚注
-----

6. 外部リンク
--------

[1]
[2]
[3]
[4]