Überschreitung der Maximalen Pfadlänge und Explorer
Heute hatte ich bei einem Kunden einen interessanten Fall:
Dieser hatte in seinem “Eigene Bilder” Verzeichnis in verschiedneen Unterverzeichnissen Bilddateien abgespeichert.
In einigen Unterordnern wurde bei Bildern kein Vorschaubild angezeigt. Weiters gab es keine Möglichkeit, die Datei umzubenennen (Beep bei F2), auch kopieren, ausschneiden, verschieben usw. war nicht möglich. Im Kontextmenü fehlte ebenfalls der Menüpunkt “Eigenschaften”. Öffnen der Datei war natürlich auch nicht möglich, weder mit Doppelklick noch mit “öffnen”.
In der Eingabeaufforderung wurde die Datei mit dem dir Kommando angezeigt, bei attrib jedoch nicht. cacls * stoppte bei der ersten problematischen Datei mit einer Fehlermeldung.
Versuchte man im “Öffnen”-Dialog einer Applikation, die Datei zu öffnen, so wurde vermeldet, dass diese nicht gefunden werden kann.
Ein chkdsk lieferte keine Probleme im Dateisystem.
Beim Vergleich der funktionierenden und nicht funktionierenden Dateien fiel mir auf, dass nur Dateien mit relativ langen Dateinamen betroffen waren. Der Ordner, in dem die Dateien gespeichert waren, hatte ebenfalls einen relativ langen Nnamen. Als Programmierer fiel mir aufgrund dieser Gemeinsamkeiten dann irgendwann die MAX_PATH Konstante ein. Die gibt die maximale Länge eines Verzeichniseintrags, aber gleichzeitig auch die Maximallänge eines Pfades an! Nimmt man nun den tatsächlichen Pfad zum Eigene Dateien Verzeichnis und die Ordnernamen zusammen, so wurde die maximale Pfadlänge überschritten und damit funktionierte das Ganze dann nicht mehr, was zu den merkwürdigen Symptomen führte. Die Probe aufs Exempel: Kürzung des Ordnernamens (Dateiname kann ja nicht editiert werden bei Überschreitung): Siehe da, plötzlich konnte man die Dateien wieder verwenden.
Also: Falls die oben genannten Symtome auftreten, einfach mal die Pfadlänge prüfen.