Wenn Sie lange genug mit Windows arbeiten, insbesondere mit Ordnern und Dateien, die lange Namen haben, werden Sie einen bizarren Fehler bekommen : Windows meldet, dass der Ordnerpfad oder der Dateiname zu lang ist, um zu einem neuen Ziel verschoben oder sogar gelöscht zu werden. Wie geht's?
Hey How-To Geek!
Also habe ich neulich einige Dateien auf meinem Computer neu organisiert, Ordner angelegt, diese Art von Sachen. Wenn ich dann einige Dateien in einen Ordner verschiebe, erhalte ich eine Meldung, dass der resultierende Ordnerpfad zu lang sein würde. Ich war verwirrt. Ich weiß, dass jedes einzelne Betriebssystem seit DOS lange Dateinamen unterstützt, Windows behauptet jedoch, dass der Pfad zu lang ist? Warum passiert das?
Mit freundlichen Grüßen
Herr. Unorganisiert
Das Problem, auf das Sie stoßen, ist eine unglückliche Schnittmenge zweier Systeme, die in solchen Fällen zu einem Fehler führt. Um genau zu verstehen, woher der Fehler kommt, müssen wir uns in die Geschichte von Long Filenames (LFN) vertiefen und wie Windows mit ihnen interagiert, bevor wir uns mit Lösungen beschäftigen.
Lange Dateinamen wurden durch die zugrunde liegende MS-DOS-Architektur eingeführt , in Windows 95. Das neue LFN-System erlaubte Datei- und Verzeichnisnamen mit bis zu 255 Zeichen. Dies war eine willkommene Erweiterung des bisherigen Dateinamensystems, das üblicherweise als 8.3 Dateiname bezeichnet wird, da der Name auf acht Zeichen und eine dreistellige Erweiterung begrenzt war, aber auch als Kurzdateiname (SFN) bekannt ist. Wie du dir vorstellen kannst, gab es damals immer noch viele DOS-basierte Apps und es gab mehr als ein paar Kopfschmerzen, um die neueren LFNs und die alten SFNs dazu zu bringen, gut miteinander zu spielen. Wenn Sie jemals auf eine ältere Diskette oder CD-ROM mit merkwürdig abgeschnittenen Dateien gestoßen sind (wie abcdef1.txt), wurde dieser Dateiname von einer SFN-verarbeitenden Legacy-Anwendung von einigen längeren und nicht unterstützten LFNs abgeschnitten (wie abcdefghijk). txt).
Wir sind weit von der Mitte der 1990er Jahre entfernt, und das ganze Long Filename-Ding ist (größtenteils) fest gebügelt. Wenn Sie eine Windows-Version der letzten 10 Jahre verwenden, sind Sie wahrscheinlich nie auf einen Dateinamenlängenkonflikt gestoßen, wie wir ihn in den DOS / Windows 95-Tagen gewohnt waren. Das heißt, wir stoßen immer noch auf Schluckauf, wie Sie mit Ihrem Festplattenbereinigungsprojekt herausgefunden haben. Aber warum? Wenn das Windows-System für lange Dateinamen Ordner und Dateinamen mit bis zu 255 Zeichen pro Komponente unterstützt, an welche Wand stoßen Sie? Wir können NTFS (das Dateisystem, das die überwiegende Mehrheit der modernen Windows-Maschinen verwendet) nicht beschuldigen, da NTFS eine Verkettung von Ordnern und Dateinamen bis zu einer Gesamtpfadlänge von 32.767 Zeichen unterstützt. Das übersteigt die typische Verzeichnisstruktur, die die meisten Benutzer jemals brauchen würden.
Wo alles zusammenbricht, ist eine künstliche Einschränkung, die Windows auf das LFN / NTFS-System stapelt: die Variable MAX_PATH. Die MAX_PATH-Variable gibt an, dass eine vollständige Verzeichnisstruktur in Windows insgesamt 260 Zeichen nicht überschreiten darf, die den Laufwerksbuchstaben, den Doppelpunkt, den umgekehrten Schrägstrich und das Null-Backlash an dem Ende enthalten. Somit haben Sie nur ein potentielles echtes MAX_PATH von 256 Zeichen, zB C: your-256-character-path .
Was also passiert ist, als Sie Ihren Computer aufräumten, war ein Verzeichnis mit einem bereits langen Pfad (entweder weil die Ordnernamen lang waren, die Dateinamen lang waren oder beides) und wenn Sie versuchten, eines oder mehrere dieser Verzeichnisse in ein anderes Verzeichnis mit einem langen Pfad zu verschieben, die Gesamtlänge des Pfades Der Name hat die Grenze von 260 Zeichen überschritten, die durch die Variable MAX_PATH auferlegt wurde.
Nun denken Sie vielleicht "Ah-hah! Wir ändern einfach die MAX_PATH-Variable und lösen das Problem! "Leider ist es nicht so einfach. Die MAX_PATH-Variable ist nicht nur im Wesentlichen fest in Windows codiert, sondern selbst wenn Sie den enormen Aufwand, ihn zu ändern, durchgemacht haben, würden Sie am Ende so viel brechen, dass es sich nicht lohnt. Zu viele Anwendungen erwarten, dass die Pfadvariable so ist, wie Windows es seit langem angibt. Wir können nicht einfach herumgehen, um es zu verändern, ohne ein riesiges Chaos zu verursachen.
Wo verlässt dich das? Nun, die einfachste Lösung besteht darin, nur die Pfaddaten zu bearbeiten. Wenn Sie zum Beispiel eine Menge gespeicherter Artikel haben, bei denen die Anwendung / Erweiterung, mit der Sie sie aus dem Internet gespeichert haben, ein Verzeichnis erstellt hat, das den vollständigen Titel des Artikels + des Artikelleiters enthielt, dann ist der Dateiname der vollständige Titel des Artikels + des Artikels führen, wäre es wirklich einfach, den MAX_PATH mit einem einzelnen Speicher zu treffen oder zu übersteigen. Das Bearbeiten dieser riesigen Ordner- und Artikeltitel auf eine vernünftige Größe stellt eine einfache Möglichkeit dar, das Problem zu beheben.
Wenn Sie eine große Anzahl von Dateien mit einem langen Pfad haben und nicht alle bearbeiten möchten (oder wenn Sie wollen löschen eine Tonne alter Verzeichnisse, die zu lang sind, um mit Windows umzugehen, wenn sie durch die MAX_PATH-Variable eingeschränkt werden. Es gibt eine Befehlszeile, die umgeht. Obwohl Windows durch die Variable MAX_PATH eingeschränkt ist, erkannten Windows-Ingenieure, dass es Situationen geben würde, in denen Benutzer mit längeren Pfadnamen umgehen müssen. Daher verfügt die Windows-API über eine Funktion zum Behandeln extrem langer Pfade.
Um diese API zu nutzen und Kommandozeilen-Tools für Ihre unhandlichen Ordner / Dateinamen zu verwenden, müssen Sie einfach den Verzeichnisnamen mit a anhängen einige zusätzliche Zeichen Wenn Sie zum Beispiel eine große Verzeichnisstruktur haben, die Sie löschen möchten (aber aufgrund der Pfadlänge beim Versuch einen Fehler erhalten hat), können Sie den Befehl wie folgt ändern:
rmdir c: documents some-really -super-long-folder-name-scheme
bis:
rmdir \? c: dokumente some-really-super-long-ordnername-schema
Der Schlüssel ist der Hinzufügen des Abschnitts\?
vor dem Start des Dateipfads; Dies weist Windows an, die von der Variablen MAX_PATH auferlegten Einschränkungen zu ignorieren und mit dem Pfad zu interagieren, den Sie gerade geliefert haben, wie direkt vom zugrunde liegenden Dateisystem geliefert und verstanden (was eindeutig einen längeren Pfad unterstützen kann). Wie immer sollten Sie an der Eingabeaufforderung Vorsicht walten lassen, um versehentliches Löschen von Dateien oder Verzeichnissen zu vermeiden, die Sie intakt lassen wollten.
Wenn Sie unsere Übersicht zu diesem Thema interessieren, lesen Sie diesen Artikel aus der Microsoft Developer Network-Bibliothek Naming Files. Pfade und Namespaces für weitere Informationen darüber, was unter der Haube passiert.
Haben Sie eine dringende technische Frage? Schießen Sie uns eine E-Mail an und wir werden unser Bestes tun, um es zu beantworten.
Vier hervorragende Android-Nougat-Verbesserungen, die Sie vielleicht nicht kennen
Android 7.0 Nougat ist eine weitere Funktion zur Verfeinerung des Betriebssystems mit vielen kleinen Optimierungen und Verbesserungen. Google hat viele der großen Funktionen abgedeckt, als es Nougat (damals "Android N" genannt) angekündigt hat, aber heute werden wir eine Handvoll Funktionen hervorheben, von denen Sie vielleicht noch nicht gehört haben.
So sperren Sie eine Notiz mit einem Passwort oder einer Touch-ID in iOS
Mit der Veröffentlichung der neuesten iOS-Version können Sie Ihre Notizen jetzt in der Notes App mit einem Kennwort oder einer Touch-ID schützen. Für mich war das eine wirklich gute Nachricht, da ich die Notes App häufig auf meinem iPhone verwende, aber ich hasse die Tatsache, dass ich eine andere App wie Evernote verwenden muss, wenn ich sensible Notizen erstelle, die ich schützen möchte.Alles