私はこの数ヶ月でこの非常に奇妙な問題を経験し始めました。以前はこの問題は発生していませんでしたが、現在何が原因であるのかわかりません。
Windows10でSyncToy2.1を使用しています。ファイルをFAT32フォーマットのUSBドライブに同期しています。
フォルダー名に大文字と小文字が混在している場合、フォルダー名が9文字未満でスペースが含まれていないフォルダーは、大文字でUSBにコピーされます。フォルダ名が9文字未満でスペースが含まれている場合は、正しくコピーされます。フォルダ名が8文字を超える場合は、正しくコピーされます。小文字のフォルダー名(<9文字でスペースなし)は小文字のままで、大文字のフォルダー名(<9文字でスペースなし)は大文字のままです。問題となるのは混合ケースのみです。
この問題はフォルダ名にのみ影響し、長さに関係なくすべてのファイルのファイル名が正しくコピーされます。複数のWindows10 PCでテストしましたが、すべて同じ問題があります。複数のFAT32USBをテストしましたが、すべて同じ問題があります。 NTFSファイルシステムを使用している場合は問題は発生しませんが、FAT32を使用する必要があります。
例(PCフォルダー名-> USBフォルダー名):
不正解:
正解:
私はこれまでこの問題を抱えたことはありませんでした。なぜ突然この奇妙な行動をしているのですか?
問題は、ファイル/ディレクトリの名前が実際には2つの名前で構成されているという事実にあります。古い(短い)8.3規則と新しい(長い)255文字の名前です。
特にFATファイルシステムの場合、ファイルに名前を付けるたびに、システムはこれらの両方の名前を更新します。短い名前は、長い名前の最初の文字に基づいて自動的に作成されます(たとえば、SyncToy_4264be.datはSYNCTOY〜1.DATになります))。名前が古い命名規則に適合する場合、長い名前は破棄されます。
DOSの昔は、ファイル名の大文字と小文字の区別はなく、プログラムは自由にファイル名を自由に表示できました(すべて大文字またはすべて小文字)。 ただし、内部的にはすべて大文字で格納されていました。
これに基づくと、Windows 10は、8.3の命名大文字と小文字に関しては、FATボリュームへの書き込み時に大文字と小文字の情報を保持せず、すべての文字を大文字に変換するようです。
ここでファイルの命名規則に関する詳細を読むことができます: 長いファイル名