Nazwa folderu została wymieniona w Eksploratorze plików za pomocą zwykłych czterech kropek ....
.
Kiedy próbowałem go otworzyć, natrafiłem na coś w rodzaju nieskończonej pętli z króliczym otworem, w której wielokrotnie otwierałem dokładnie ten sam folder - mogłem to robić w nieskończoność. Wskazanie ścieżki jak C:\ExamplePath\....\....\....\....\....
itp.
Zawieszała moją kompilację TypeScript w jednym konkretnym projekcie. Ponad rok zajęło mi znalezienie tego folderu i powiązanych z nim problemów, ponieważ był on głęboko zakorzeniony w zagnieżdżonych folderach. Nigdy nie spodziewałem się takiego problemu, więc nigdy go nie szukałem.
Nie mogłem usunąć folderu w zwykły sposób z powodu specjalnej nazwy. Na koniec mogłem go usunąć za pomocą wiersza polecenia i usunąć folder nadrzędny za pomocą rd /s /q path
.
Następnie próbowałem ponownie utworzyć folder, ale nie mogłem tego zrobić zarówno w Eksploratorze plików, jak i wierszu poleceń.
Przez ponad 20 lat korzystania z systemu Windows nigdy wcześniej nie widziałem tego błędu, więc mogę sobie wyobrazić, że byłby to irytujący i zagmatwany problem dla amatorskich użytkowników.
Czy ktoś wie, jak to się mogło stać i jak odtworzyć ten problem?
Aktualizacja
Dla osób zainteresowanych: ta ścieżka znajdowała się głęboko w folderze TFS. Prawdopodobnie więc TFS stosuje wyjaśnioną metodę @grawity ( „Różne menedżery plików, archiwizatory itp.” )
Czy natknąłem się na rzadki błąd TFS?
GET /....\\....\\....\\....\\....\\....\\....\\....\\....\\winnt\\win.ini
. Najwyraźniej istnieje / była pewna podatność gdzieś, którą ta próba wykorzystuje.
..
nie ....
. Jest to po prostu sposób przejścia do \winnt
dowolnej głębokości punktu początkowego (katalogu głównego), o ile głębokość punktu początkowego jest mniejsza niż 9 poziomów. Polega on na tym, że przejście ..
z katalogu głównego pozostawia cię w katalogu głównym.
..
dlatego uznałem to za dość dziwne.
..
może być użyty w ścieżce do wskazania „idź w górę o jeden folder”, zaryzykowałbym przypuszczenie, że gdzieś po linii, jakiś program lub skrypt połączył dwa ciągi znaków, aby utworzyć ścieżkę, jeden kończył się..
, a następny zaczynał od..
, i ponieważ zastosował jedną z poniższych technik, udało mu się utworzyć ścieżkę, mimo że brakowało między nimi separatora folderów.