Введение

искажение имен файлов для совместимости с операционной системой. Процесс искажения имен файлов в информатике заключается в преобразовании имени файла для обеспечения совместимости на уровне операционной системы. Это происходит, когда имя файла в файловой системе имеет формат, несовместимый с операционной системой, обращающейся к нему. Такое искажение возникает, например, в компьютерных сетях, когда компьютер под управлением Windows пытается получить доступ к файлу на сервере Unix, и имя этого файла содержит символы, недопустимые в Windows.

Предыдущая поддержка по VFAT

Обычный пример искажения имен файлов происходит в файловых системах VFAT, начиная с версий Windows 95 и далее. Спецификация VFAT допускает использование длинных имен файлов (LFNs). Для обеспечения обратной совместимости с MS-DOS и более старым программным обеспечением Windows, которое распознает имена файлов длиной не более 11 символов в формате 8.3 (то есть: имя файла из восьми символов, точка и расширение из трех символов, например, autoexec.bat), файлы с LFNs хранятся на диске в формате 8.3 (longfilename.txt становится longfi~1.txt), а длинное имя файла сохраняется в другом месте на диске. Как правило, при использовании совместимых программ Windows, использующих стандартные методы чтения диска Windows, подсистема ввода-вывода возвращает программе длинное имя файла. Однако, если старое приложение DOS или старое приложение Windows пытается обратиться к файлу, оно будет использовать устаревшие API, поддерживающие только формат 8.3, или работать на более низком уровне, выполняя собственный доступ к диску, что приведет к возврату имени файла в формате 8.3. В этом случае имена файлов искажаются путем взятия первых шести непробельных символов имени файла, добавления к ним тильды (~) и затем номера для обеспечения уникальности имени файла 8.3 на диске. Эта схема искажения может преобразовать (например) "Program Files" в "PROGRA~1". Этот метод до сих пор используется, когда люди запускают классические DOS-игры с помощью DOSBox или используют Windows 3.1 вместе с Win16 для запуска игр на 64-битной Windows.

Файловые системы Unix

Имена файлов Unix могут содержать двоеточия или обратные слеши, в то время как Windows интерпретирует эти символы иначе. Соответственно, программное обеспечение может некорректно преобразовать имя файла Unix "Заметки: 11\04\03" в "Заметки 11 04 03", чтобы обеспечить удалённый доступ к файлу для программного обеспечения Windows. Другие Unix-подобные системы, такие как Samba на Unix, используют различные методы преобразования для приведения длинных имен файлов к формату, совместимому с DOS (хотя администраторы Samba могут настроить это поведение в файле конфигурации).

Mac OS

Finder в macOS отображает двоеточия (:) в именах файлов и каталогов как "/". Это происходит потому, что в классической Mac OS двоеточие использовалось внутренне в качестве разделителя пути. Однако при просмотре списка этих файлов или каталогов через эмулятор терминала отображается двоеточие (:), а не символ "/".