短いファイル名は、前述のアルゴリズムを使用してLFNから自動的かつ強制的に作成されます。(FAT32仕様でも詳しく説明されています)。これはファイルシステムドライバーによって行われます(少なくともWindowsとLinuxでは)。推奨されないドライバーを変更しない限り、実際には変更できません。これを1つのディレクトリに対してのみ実行する場合は、同じ名前の重複エントリを作成しないように注意しながら、16進エディタでディスクイメージを変更することでこれを実現できます。
これが私がLinuxで試したことです:
#dd if=/dev/zero of=fatImage bs=1048576 count=256
#mkfs.vfat -F 32 fatImage
#mount -o loop fatImage /mnt
#cd /mnt
#mkdir ThisIsALongDirectoryName
fatドライバーは、ディレクトリの短い名前THISIS〜1を生成します。両方の名前を使用してアクセスできます。
#cd /mnt/ThisIsALongDirectoryName
#cd /mnt/THISIS~1
次に、パーティションをアンマウントした後、16進エディター(KDEのOkteta)でイメージを開き、SFNエントリTHISIS〜1を検索して、 MYNEWDIRに置き換えました。また、各32バイトのLFNサブエントリは、オフセット13にSFNのチェックサムを格納します。したがって、THISIS〜1(0xA6)のチェックサムを計算して、すべてのMYNEWDIR(0x6A)のチェックサムに置き換える必要がありました。 LFNサブエントリ。変更を保存した後、イメージを再マウントし、古いLFNと新しいSFNを使用してディレクトリにアクセスできました。
#cd /mnt/ThisIsALongDirectoryName
#cd /mnt/MYNEWDIR