Le nom du dossier était listé dans l'Explorateur de Fichiers avec seulement quatre points. ....
.
Lorsque j'ai essayé de l'ouvrir, je me suis retrouvé dans une sorte de boucle sans fin où j'ouvrais exactement le même dossier encore et encore - je pouvais le faire sans fin. En montrant le chemin comme C:\ExamplePath\....\....\....\....\....
etc.
Cela bloquait ma compilation TypeScript dans un projet spécifique. Il m'a fallu plus d'un an avant de trouver ce dossier et ses problèmes connexes, car il était profondément ancré dans des dossiers imbriqués. Je ne m'attendais pas à un tel problème et je ne l'ai donc jamais cherché.
Je n'ai pas pu supprimer le dossier de la manière normale à cause du nom spécial. Finalement, j'ai pu le supprimer en utilisant la ligne de commande et en supprimant le dossier parent avec la commande rd /s /q path
.
Ensuite, j'ai essayé de créer à nouveau le dossier, mais je n'y suis pas parvenu, ni avec l'Explorateur de fichiers ni avec la ligne de commande.
En plus de vingt ans d'utilisation de Windows, je n'ai jamais vu ce bogue auparavant. Je peux donc imaginer que ce serait vraiment un problème ennuyeux et déroutant pour les utilisateurs amateurs.
Quelqu'un sait-il comment cela a pu se produire et comment reproduire ce problème ?
Mise à jour
Pour les personnes intéressées : ce chemin était situé profondément dans un dossier TFS. Donc probablement TFS utilise la méthode de contournement expliquée par @grawity ( "Divers gestionnaires de fichiers, archiveurs, etc" )
Est-ce que je suis tombé sur un bug rare de TFS ?
5 votes
Les réponses ci-dessous détaillent ce qui se passe, comment le reproduire intentionnellement et comment le réparer, mais elles ne mentionnent pas pourquoi cela s'est produit. Depuis
..
peut être utilisé dans un chemin pour indiquer 'monter d'un dossier', je me hasarderais à penser que quelque part, un programme ou un script a concaténé deux chaînes pour créer un chemin, l'une se terminant par..
et la suivante commençait par..
et comme il a utilisé l'une des techniques mentionnées ci-dessous, il a réussi à créer le chemin, même s'il lui manquait le séparateur de dossiers entre eux.6 votes
Des choses étranges se produiront également si vous créez un dossier dont le nom ne contient que des espaces.
7 votes
Ce serveur est-il sur Internet ? Juste pour vous prévenir, je vois régulièrement des tentatives de piratage sur des serveurs web tournés vers l'internet qui demandent des informations :
GET /....\\....\\....\\....\\....\\....\\....\\....\\....\\winnt\\win.ini
. Il est clair qu'il y a/avait une vulnérabilité quelque part que l'on tente d'exploiter.5 votes
@AndyBrown beaucoup plus probable que c'est
..
, nicht....
. Il s'agit simplement d'un moyen de passer à\winnt
quelle que soit la profondeur du point de départ (la racine web), pour autant que le point de départ ait une profondeur inférieure à 9 niveaux. Elle s'appuie sur le fait qu'aller..
à partir du répertoire racine vous laisse au répertoire racine.0 votes
@hobbs Ouais, mais les serveurs web vérifient souvent que
..
6 votes
@hobbs C'est un copier-coller du journal d'accès d'Apache sous linux. Il y a bien 4 points là-dedans. Il y a d'autres tentatives de piratage enregistrées qui faire utiliser
..
c'est pourquoi j'ai trouvé celui-ci plutôt étrange.3 votes
@AndyBrown : Là était, il y a près de deux décennies. Le dernier OS à installer sur
C:\WINNT
par défaut était Windows 2000. Mais même cela aurait utilisé..
et non un autre nombre de points.3 votes
Il y a un xkcd très pertinent (#981), mais étant donné que le titre est légèrement NSFW, je ne vais pas le lier directement ici...
0 votes
Probablement sans rapport, mais si je me souviens bien, Windows 95 utilisait
...
pour faire référence au répertoire grand-parent, et....
pour se référer au répertoire des arrière-grands-parents.