Victor_VG
![](http://forum.ru-board.com/board/avatars/private/Victor_VG.gif)
Tracker Mod | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору shmuz Да, перестарался легонько, факт. Alexyz21 Нет, это неверная логика построения короткого имени. Насколько помню ОС его строит по такой схеме: первые шесть букв длинного имени файла, тильда, цифры от 1 до 9. Короткое имя всего пишется в верхнем регистре. но, алгоритм его формирования довольно сложный: Цитата: Поскольку NTFS использует набор символов UNICODE для имен файлов, существует возможность использования некоторых запрещенных в MS-DOS символов. Для генерации короткого имени файла в стиле MS-DOS NTFS удаляет все запрещенные символы, точки (кроме одной), а также любые пробелы из длинного имени файла. Далее имя файла усекается до 6 символов, добавляется тильда (~) и номер. Например, каждому недублированному имени файла добавляется ~1, повторяющиеся имена файлов заканчиваются символами ~2, ~3 и т.д. Расширение имени файла усекается до 3 символов. Короткие имена файлов с длинными русскими именами образуются по особой схеме, в зависимости от типа используемой файловой системы. На FAT короткое имя образуется путем использования первых 6 символов от длинного плюс знак "~" плюс цифра. Далее следует расширение файла. Если в длинном имени имеются пробелы, то они игнорируются. Если имеется несколько файлов с длинными именами, различающимися деталями за пределами первых 6 символов, то у коротких имен, соответствующих им будет изменяться последняя цифра. Если таких похожих файлов больше четырех, то первые 6 символов определяются по специальному алгоритму, а окончание имени всегда одинаково: "~5". Например, если файл имеет имя "длинное имя файла.русское", то его короткое имя "ДЛИННО~1.РУС". Если у какоголибо файла в этом каталоге первые 6 символов имени и три символа расширения окажутся такими же, например, "длинное письмо.руслан", короткий вариант будет выглядеть так: "ДЛИННО~2.РУС". На NTFS короткое имя образуется по несколько иному алгоритму, когда за основу берутся не первые 6 символов длинного имени, а их эквивалент в UNICODE. Например, для файла, длинное имя которого "Очень хороший файл. С расширением", короткое имя будет выглядеть следующим образом: 9а10~1.gif |
---------- Жив курилка! (Р. Ролан, "Кола Брюньон") Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti |
|