Unsere Dokumentdateien sind auf neue Server mit längeren Verzeichnisnamen umgezogen. Bei einigen Dateien sind die Gesamtpfade jetzt zu lang – Windows kommt damit nicht zurecht. Ich kann die Dateien auch nicht mehr umbenennen oder verschieben. Was kann ich da tun?
Diese Beschreibung richtet sich an Administratoren.
Wenig hilfreich: Die in der Fehlermeldung genannte Abhilfe funktioniert nicht.
Bitte unterstützt meine Arbeit
Ursache
Der vollständige Dateipfad mit Laufwerk, allen Verzeichnissen und dem Namen mit Endung darf maximal ca. 250 Zeichen lang sein. Durch das Kopieren ganzer Verzeichnisstrukturen können Dateien mit zu langen Pfaden entstehen. Das Dateisystem erlaubt zwar längere Namen, die Windows Shell, über welche die Programme wie der Windows Explorer auf die Dateien zugreifen, ist aber von der Zeichenbeschränkung betroffen.
Zum Beispiel: Die Dateien waren bisher unter „G:\Daten\“ abgelegt. Einige Dateien hatten bereits einen Pfad mit der zulässigen Gesamtlänge. Das gesamte Daten-Verzeichnis wurde verschoben und ist jetzt unter „\\Server\Freigabe\Verzeichnis\Daten\“ zu erreichen. Es sind 25 Zeichen hinzugekommen.
Wie viele Zeichen sind genau erlaubt?
Wenn man nach der maximalen Länge sucht, findet man einige unterschiedliche Antworten: 247, 255, 260 oder sogar über 30.000 Zeichen. 260 ist der Wert der Windows-Variablen MAX_PATH, die aber zusätzlich zum Pfad noch Anführungszeichen, <, > und das NULL-Zeichen am Stringende berücksichtigt und eher für Entwickler interessant ist. 32.767 Zeichen sind im NTFS-Dateisystem erlaubt. Die Windows Shell begrenzt auf 255 Zeichen – dies ist für Software wie den Windows Explorer relevant. Und vorhin selbst ausprobiert unter Windows 10 mit dem Explorer auf der lokalen Festplatte: mehr als 247 Zeichen sind nicht möglich.
Lösungsmöglichkeit
Wir müssen einen Zugriffspfad schaffen, der die maximale Zeichenanzahl nicht überschreitet. Danach können die Dateien verschoben oder der Name gekürzt werden, um wieder über den normalen Pfad zugreifen zu können.
Prüfen Sie bei Netzlaufwerken vorab, ob das Problem durch einen Freigabenamen mit kürzeren Texten behoben werden kann.
Beispiel:
Schauen Sie sich folgenden Screenshot des Windows-Explorers an:
Das Verzeichnis „C:\Temp\0123…789\Mein Unterverzeichnis\“ hat insgesamt 234 Zeichen. Enthalten ist die Datei „Meine Beispieldatei im sehr tiefen Verzeichnis.txt“, insgesamt also 284 Zeichen und somit zu lang. Die Datei lässt sich im Explorer weder umbenennen noch kopieren oder verschieben.
Wir nutzen den Befehl subst, um einen Laufwerksbuchstaben für ein Unterverzeichnis zu definieren:
- Markieren Sie, wie oben abgebildet, „Mein Unterverzeichnis“ im Windows Explorer. Klicken Sie dann in die Explorer-Adressleiste und kopieren Sie den Gesamtpfad mit Strg+C in die Zwischenablage.
- Öffnen Sie die Eingabeaufforderung, beispielsweise „cmd“ im Suchfeld der Taskleiste eingeben.
- Schreiben Sie subst ” in die Eingabeaufforderung und schreiben sie Y: ” fügen Sie den Pfad mit Strg+V aus der Zwischenablage ein. Schreiben Sie ” dahinter.
Der Pfad muss hier in Anführungszeichen gesetzt werden, weil er Leerzeichen beinhaltet. In älteren Windows-Versionen funktioniert die Kurztaste Strg+V nicht. Klicken Sie dann oben links im Fenster der Eingabeaufforderung auf das Fenstericon und wählen Sie im Systemmenü Bearbeiten | Einfügen.
Bestätigen Sie mit der Eingabetaste.
- Wechseln Sie im Explorer zum Laufwerk Y: und benennen Sie die Datei um – beispielsweise in „Meine Datei.txt“. Sie müssen mindestens die Zeichen entfernen, die zuvor zu viel waren.
- Anschließend können Sie das Laufwerk wieder entfernen: subst Y: /d, sollte das nicht funktionieren versuchen Sie es mit
mountvol X: /D wobei Sie anstelle von «X:» den Geisterlaufwerksbuchstaben verwenden.
Obige Befehle im Screenshot:
Eventuell ist der Pfad immer noch zu lang, wenn Sie den Laufwerksbuchstaben auf das unterste Verzeichnis setzen. In so einem Fall den subst-Befehl auf ein übergeordnetes Verzeichnis anwenden.
1 comment