In Win32 können Sie keine Dateien oder Ordner erstellen, deren Namen auf enden. .
Alle Punkte werden vom Ende entfernt. Der Versuch, test.
Marken zu erstellen, test
erscheint stattdessen. (Dies ist für die Kompatibilität mit 8.3-Namen in alter DOS / Win9x-Ära-Software.)
Jedes Mal, wenn Sie versuchen, auf einen Ordner mit dem Namen zuzugreifen ....
, wird sein Name auf die leere Zeichenfolge reduziert, und Sie kehren zu dem Ordner zurück, in dem Sie sich zuvor befanden.
Der NT-Kernel erlaubt jedoch solche Namen. Es gibt verschiedene Mechanismen, die die durch Win32-APIs auferlegten Dateinamensbeschränkungen umgehen. Beispielsweise wird WSL (Windows Subsystem for Linux) nicht auf Win32 ausgeführt und ist davon nicht betroffen. Es gibt auch die \\?\
Bypass-Methode, eine bewusste "Backdoor" für Programme, die wissen, was sie tun. Auch wenn Sie nicht erstellen können C:\Example\....\
, können Sie auch gut erstellen \\?\C:\Example\....\
.
Ebenso können Sie solche Verzeichnisse mit rmdir \\?\C:\path\...
Cmd löschen (ich habe es noch nicht mit PowerShell getestet).
Verschiedene Dateimanager, Archivierer usw. verwenden die \\?\
Methode möglicherweise, um längere Pfadnamen als üblich verwenden zu können. Dadurch sind sie auch vom Kompatibilitätscode in Win32 nicht betroffen. Sie umgehen das Punktstrippen sowie die Übersetzung von magischen Dateinamen wie CON
oder NUL
.
Es könnte also eines Ihrer Programme sein:
- verwendet immer,
\\?\
um auf Dateien zuzugreifen, - Ich habe versehentlich versucht, einen Ordner mit dem Namen zu erstellen
....
- aber es ist nicht wirklich möglich, sicher zu wissen.