У меня есть 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.