Website-Suche

Windows hat immer noch eine Eigenheit bezüglich Dateinamen, die direkt aus der DOS-Ära stammt.


Ist es Ihnen schon einmal passiert, dass Sie eine Datei oder einen Ordner umbenannt haben und der neue Name sich von dem unterschied, was Sie eingegeben hatten? Kürzlich habe ich den Titel eines Dokuments in das Umbenennungsfeld eingefügt und anschließend die Enter-Taste gedrückt - dabei verschwand der Punkt am Ende einfach. Es gab weder eine Warnung noch eine Fehlermeldung; Windows entfernte das Zeichen einfach, ohne eine Erklärung zu geben.

Das war nun nicht das erste Mal, dass das passierte. Es ist eines jener kleinen, seltsamen Verhaltensweisen von Windows, die zur Regel werden - aber dieses Mal wollte ich das nicht einfach so hinnehmen. Ich musste wissen, warum Windows den Punkt entfernt und den Ordnernamen ändert, ohne mir etwas davon zu sagen.

Ich habe eine 33 Jahre alte Windows-Funktion entdeckt, die immer noch direkt vor unseren Augen versteckt ist.

Jede Datei auf Ihrem PC kann eine zweite Seite enthalten.

Es ist kein einmaliges Problem.

Außer Dateien mit bestimmten Erweiterungen






Wäre es ein einmaliges Problem gewesen, wäre es leichter gewesen, es zu ignorieren. Ich habe absichtlich mehrere Dateitypen ausprobiert, um sicherzustellen, dass ich beim ersten Mal keine Verwechslung gemacht hatte - und Windows entfernte den Punkt immer dann, wenn er das letzte Zeichen im Dateinamen war.

Dateien mit Erweiterungen waren anders. Ein Name wie document.txt enthält ein Komma, doch dieses trennt den Dateinamen von seiner Erweiterung - es steht also nicht am Ende des Namens. Ich dachte, bei Ordnern wäre das anders, aber ich lag falsch. Auch bei Ordnern wurde dieselbe Regel angewandt.

Da sah es nicht mehr nach einem zufälligen Fehler aus. Windows befolgte eindeutig eine Regel - und zwar sowohl für Dateien als auch für Ordner. Die naheliegende Vermutung wäre, dass das Dateisystem von Windows einfach keine abschließenden Punkte zulässt. Das würde Sinn ergeben - doch es wäre falsch gewesen.

NTFS hat eigentlich kein Problem

Der Teil, der Ihre Dateien eigentlich speichert, ist egal.

Die Dokumentation von Microsoft zur Dateibenennung weist Windows-Benutzer ausdrücklich darauf hin, dass Datei- oder Verzeichnisnamen nicht mit einem Leerzeichen oder einem Punkt enden sollten. Gleichzeitig wird jedoch darauf hingewiesen, dass das Dateisystem solche Namen möglicherweise unterstützt - auch wenn die Windows-Benutzeroberfläche dies nicht tut.

Das war der überraschende Teil. Also hat NTFS, das System, das eigentlich für das Speichern der Dateien auf meiner Festplatte zuständig ist, kein Problem damit, einen Dateinamen zu speichern, der mit einem Punkt oder einem Leerzeichen endet.

Obwohl man die Dateiverwaltung unter Windows gerne als ein einziges System betrachtet, besteht sie aus mehreren Schichten. So verarbeiten beispielsweise NTFS, exFAT und FAT32 Dateien nicht alle auf dieselbe Weise - jedes Format hat seine eigenen Regeln. Folglich muss es irgendwo Regeln geben, die bestimmen, wie mit Dateien umgegangen wird, bevor sie tatsächlich gespeichert werden.

Also folgt Windows immer noch einigen sehr alten Regeln.

Win32-Normalisierung ist etwas, das existiert.

Die Antwort liegt darin, wie normale Windows-Apps mit Dateipfaden umgehen. Der Datei-Explorer, der Editor sowie die meisten alltäglichen Windows-Apps verwenden die standardmäßigen Windows-APIs zur Dateiverarbeitung, die als Win32 bezeichnet werden. Diese APIs vermitteln zwischen der Anwendung und dem Dateisystem und verarbeiten Dateipfade gemäß bestimmter Regeln, bevor sie mit dem Dateisystem arbeiten.

Laut den Win32-Normalisierungsregeln wird ein abschließender Punkt oder Leerzeichen als etwas betrachtet, das am Ende nicht erhalten bleiben sollte. Deswegen verschwand mein Punkt, ohne dass ein Fehler auftrat. Windows bereinigte ihn, bevor es mit dem Verarbeiten des Namens begann.

Das Seltsame daran ist, dass dieses Verhalten neben einem viel neueren Dateisystem existiert, das diese Einschränkung eigentlich nicht benötigt. Windows hat sich seit den DOS-Zeiten verändert - damals hatten Dateinamen ein strenges Format von acht Zeichen, plus drei Zeichen, wobei kein Platz für einen abschließenden Punkt blieb.

Obwohl NTFS lange Dateinamen unterstützt, verwendet Windows weiterhin ein älteres Benennungssystem. Das ist nur eines von mehreren Dingen, die Windows 11 aufgrund von historischen und Kompatibilitätsgründen nach wie vor nicht zulässt.

Der Punkt am Ende meines Dateinamens war eine jener Regeln, die offensichtlich da waren, aber dennoch übersehen wurden. Doch ich wollte trotzdem etwas wissen: Wenn das Dateisystem den Punkt unterstützen konnte, konnte ich Windows dann tatsächlich dazu bringen, ihn beizubehalten?

Ich habe Windows gezwungen, den Punkt beizubehalten.

Umgehen des Gatekeepers mit dem Präfix \\?\






In jedem der folgenden Beispiele ist der Punkt vor dem schließenden Anführungszeichen Teil des Befehls.

Um sicherzustellen, dass dies auf Win32 zurückzuführen war und kein Problem mit den NTFS-Einschränkungen vorlag, verwendete ich die Eingabeaufforderung mit einem speziellen Pfadpräfix. Dieses Präfix weist Windows an, die Anfrage direkt an NTFS weiterzuleiten. Ich verwendete folgenden Befehl: type nul > “\\?\C:\Important\sample\config. ” Diesmal erstellte Windows eine Datei, deren Name tatsächlich den Punkt enthielt. Das reichte aus, um zu bestätigen, dass es durchaus möglich ist, einen abschließenden Punkt im Dateinamen zu speichern.

Dann wiederholte ich das gleiche Experiment mit einem Ordner, indem ich folgenden Befehl verwendete: mkdir “\\?\C:\Important\sample. ”

Und wieder erschien der Ordner - mit dem Punkt darin, der deutlich sichtbar war. Die Verwendung des Ordners war jedoch eine ganz andere Geschichte. Der Datei-Explorer freeze für etwa eine Minute, bevor er wieder reagierte, nachdem ich auf die Datei doppelklickte. Beim Klicken auf den Ordner erschien der Fehler Der Speicherort ist nicht verfügbar; dabei behauptete das System, der Ordner existiere nicht - obwohl er direkt vor meinen Augen lag.

Das Umbenennen, Löschen, Ausschneiden und Kopieren scheiterten alle auf dieselbe Weise - bei jedem Versuch zeigte Windows die Fehlermeldung Diesen Element konnte nicht gefunden werden an. Es handelt sich dabei um jene Art von „Einfrieren“, das man erwarten würde, wenn der Datei-Explorer aus völlig unzusammenhängenden Gründen nicht reagiert; nur dass diesmal die Ursache bereits bekannt war.

Windows hatte keinen geheimnisvollen, beschädigten Ordner erstellt. Ich hatte einen Namen erstellt, den NTFS speichern konnte - doch die normale Windows-Dateiverwaltung war nicht dafür ausgelegt, damit komfortabel umzugehen.

Schließlich musste ich den speziellen Pfad erneut verwenden, um das, was ich erstellt hatte, zu löschen. Für die Datei verwendete ich:

del “\\?C:\Important\sample\config.”

Für den Ordner habe ich verwendet:

rmdir /s /q "\\?\C:\Important\sample."

Da ich die Datei nicht nutzen oder öffnen konnte, behandelte der Datei-Explorer sie im Grunde als nicht existent - obwohl die Datei und der Ordner direkt dort waren.

Ein fehlender Punkt ist es wert, beachtet zu werden.

Wo es beißen könnte

Ein abschließender Punkt mag wie eine äußerst unwichtige Sache erscheinen, aber man ist nicht immer derjenige, der Dateinamen eingibt.

Skripte, exportierte Programmdateien und eingefügter Text können alle dazu führen, dass Dateinamen mit einem abschließenden Punkt oder Leerzeichen enden, ohne dass es jemand bemerkt - insbesondere angesichts der bestehenden Begrenzungen von Windows hinsichtlich Zeichenanzahl und Pfadlänge, die selbst für Probleme sorgen.

Falls Windows eine Fehlermeldung anzeigen würde, dass der Name nicht zulässig sei, wüssten Sie, dass etwas nicht stimmt, und würden ihn ändern. Das stille Entfernen eines Zeichens ist etwas anderes: Die Datei wird erstellt, und meist merkt man erst dann, dass etwas nicht stimmt, wenn später etwas nicht mehr übereinstimmt.

Die meisten von uns werden wohl niemals mit diesem Problem konfrontiert werden oder sich darüber Sorgen machen müssen. Ich hatte schon öfter beobachtet, dass Windows Punkte aus Dateinamen entfernte - ohne dabei groß darüber nachzudenken. Doch diesmal verfolgte ich dieses kleine Verhalten bis zu einer Regel, die bereits vorhanden war, bevor die meisten von uns einen Computer besaßen. Eigentlich ist an dieser Regel nichts „defekt“; es handelt sich lediglich um eine alte Kompatibilitätsregel, die bis heute Bestand hat - obwohl es mittlerweile viel neuere Dateisysteme gibt.

Windows erlaubt es Ihnen immer noch nicht, diesen Namen für einen Ordner zu verwenden - und das liegt an DOS.

Ich tippte drei harmlose Buchstaben ein - und Windows reagierte, als hätte ich seine Vorfahren beleidigt.

Ähnliche Artikel