Невозможно переименовать файл с тильдой

Невозможно переименовать файл с тильдой

У меня есть ZIP-файл, в котором всего два файла. Они называются AUSWRTX1APE1.TXT(1) и AUSWRT~1.TXT(2) .

Моя проблема в том, что я не могу извлечь оба файла в одну и ту же (новую и пустую) папку. Windows жалуется, что имя файла уже существует

Вы можете воспроизвести поведение: Создайте новый текстовый файл и назовите его AUSWRTX1APE1.TXT. Затем создайте второй текстовый файл в том же месте и попробуйте назвать его AUSWRT~1.TXT. Windows этого не сделает.

Являются ли символ тильды и старые короткие имена Windows 8.3 моей проблемой?

Если у кого-то есть более точное название, смело переименовывайте мой вопрос.

решение1

Да, старые короткие имена DOS являются источником вашей проблемы. NTFS хранит короткое имя в дополнение к длинному имени файла из соображений совместимости.

Вы можете переименовать AUSWRT~1.TXTфайл AUSWRT~2.TXTв zip-архиве перед его извлечением или изменить начало ( AUSWRT) AUSWRTX1APE1.TXTимени файла.

Другая возможность — отключить режим совместимости с NTFS, но я не рекомендую это делать.

ИЗМЕНИТЬ для ответа на комментарий:

Насколько мне известно, ~ унаследовано от ретросовместимости с FAT16, которая не позволяла использовать имена файлов длиннее "xxxxxxxx.xxx" (12) символов. Когда на FAT32 создается более длинное имя файла, в MSDOS оно отображается как xxxxxx~1.xxx, где ~1 — это ~ + количество вхождений первых 6 символов в имени файла

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

Связанный контент