Имя папки было указано в проводнике с четырьмя точками ....
.
Когда я попытался открыть его, я попал в какую-то бесконечную петлю кроличьей норы, где я снова и снова открывал одну и ту же папку - я мог делать это бесконечно. Отображение пути как C:\ExamplePath\....\....\....\....\....
и т. Д.
Он повесил мою компиляцию TypeScript в одном конкретном проекте. У меня ушло больше года, прежде чем я нашел эту папку и связанные с ней проблемы, потому что она была глубоко укоренена во вложенных папках. Я никогда не ожидал такой проблемы, поэтому никогда не искал ее.
Я не мог удалить папку обычным способом из-за специального имени. В конце концов, я могу удалить его, используя командную строку и удалив родительскую папку с помощью rd /s /q path
.
После этого я снова попытался создать папку, но не смог сделать это ни с помощью Проводника, ни с помощью командной строки.
За 20 с лишним лет использования Windows я никогда раньше не сталкивался с этой ошибкой, поэтому могу себе представить, что это действительно будет раздражающей и запутывающей проблемой для пользователей-любителей.
Кто-нибудь знает, как это могло произойти и как воспроизвести эту проблему?
Обновить
Для людей, которые заинтересованы: этот путь находится глубоко в папке TFS. Так что, вероятно, TFS использует метод обхода, объясненный @grawity ( «Различные файловые менеджеры, архиваторы и т. Д.» )
Я наткнулся на редкую ошибку TFS?
GET /....\\....\\....\\....\\....\\....\\....\\....\\....\\winnt\\win.ini
. Очевидно, что где-то есть / была какая-то уязвимость, которую он пытается использовать.
..
нет ....
. Это просто способ перехода к \winnt
независимо от глубины начальной точки (веб-корня), если начальная точка имеет глубину менее 9 уровней. Он основан на том факте, что выход ..
из корневого каталога оставляет вас в корневом каталоге.
..
именно поэтому я нашел это один довольно странно.
..
в пути можно использовать указание «перейти на одну папку», я рискну предположить, что где-то в строке какая-то программа или скрипт объединяют две строки для создания пути, одна из которых заканчивается..
, а следующая начинается с..
, и поскольку он использовал один из методов, упомянутых ниже, ему удалось создать путь, даже при том, что между ними отсутствовал разделитель папок.