Alternative zum Windows Explorer für lange Pfadnamen

24

Aktualisieren:

  1. Ich habe festgestellt, dass nicht nur der Windows Explorer, sondern auch andere Software unter zu langen Pfadnamen leidet. Wenn ich beispielsweise in Firefox eine Webseite in einem Verzeichnis speichere, kann ich dies immer noch nicht tun, wenn der Name oder Pfadname zu lang ist. Verlässt sich Firefox auch auf Windows Explorer? Wie kann ich dieses Problem auch lösen?

  2. Ich habe die in den beiden Antworten empfohlene Software ausprobiert. Keiner von ihnen kann auf einen langen Pfad zugreifen. Ist das Problem mit dem langen Pfad in Windows-Betriebssystemen enthalten, unabhängig davon, welches Programm zum Durchsuchen von Verzeichnissen verwendet wird? Wenn ja, gibt es keine Möglichkeit, daran vorbei zu kommen?

Original: Auf meinem Laptop sind zwei Betriebssysteme installiert: Windows 7 und Ubuntu 10.10. Sie teilen sich eine Partition.

In Ubuntu kann ich mithilfe von Nautilus Verzeichnisse erstellen, die sich sehr tief in der Pfadhierarchie auf der freigegebenen Partition befinden. Bei einem Wechsel zu Windows erlaubt Windows Explorer jedoch keinen Zugriff auf Verzeichnisse, die zu tief liegen, dh einen zu langen Pfadnamen haben.

Auch Windows Explorer scheint nicht in der Lage zu sein, auf unter Ubuntu erstellte Dateien und Verzeichnisse mit Sonderzeichen in Verzeichnis- und Dateinamen zuzugreifen.

Ich habe mich gefragt, was das Problem in Windows lösen kann. Gibt es zum Beispiel eine andere alternative Software, die den Windows Explorer ersetzt?

Tim
quelle
1
Welches Dateisystem haben Sie für die gemeinsam genutzte Partition (FAT32, NTFS) verwendet?
James P
1
@ James: ntfs ...
Tim
Ich würde fragen, warum Sie diese Länge oder Tiefe brauchen? Es ist wahrscheinlich einfacher, das zu lösen, was dazu geführt hat, dass Sie das Limit von 259 überschritten haben, als Windows dazu zu bringen, es zu umgehen.
cjb110

Antworten:

30

Während NTFS Pfade mit einer Länge von 32.000 Zeichen zulässt, haben Sie die Pfadlängenbeschränkung von 259 Zeichen der Win32-API gefunden .

In der Windows-API (mit einigen im [verlinkten Dokument] behandelten Ausnahmen) beträgt die maximale Länge für einen Pfad MAX_PATH260 Zeichen.

(Zusätzlich wird ein NULLAbschlusszeichen an den Pfad angehängt, das uns 259 verwendbare Zeichen gibt.)

Da Explorer (und fast alle anderen Windows-Apps) für den Dateisystemzugriff auf die Win32-API angewiesen sind, ist es nicht sinnvoll , diese Einschränkung zu umgehen, obwohl dies möglich ist :

Die Windows-API verfügt über viele Funktionen, die auch über Unicode-Versionen verfügen, um einen Pfad mit erweiterter Länge für eine maximale Gesamtpfadlänge von 32.767 Zeichen zuzulassen. Dieser Pfadtyp setzt sich aus durch Backslashes getrennten Komponenten zusammen, die jeweils bis zu dem im lpMaximumComponentLengthParameter der GetVolumeInformationFunktion zurückgegebenen Wert (dieser Wert besteht normalerweise aus 255 Zeichen) reichen. Verwenden Sie das Präfix "\\? \", Um einen Pfad mit erweiterter Länge anzugeben. Zum Beispiel "\\? \ D: \ sehr langer Pfad ".

Leider können Sie nicht einfach \\?\D:\very long pathin ein Explorer-Fenster eingeben. Die Anwendung muss so konzipiert sein, dass sie diese APIs nutzt und sehr lange Pfadnamen verarbeitet.

Eine Möglichkeit, unter Windows auf Pfade mit erweiterter Länge zuzugreifen, ist die Installation von Cygwin , einer * nix-Emulationsebene für Windows. In meinen Tests scheint Cygwin nicht eingeschränkt zu seinMAX_PATH ; Bash und Vi hatten keine Probleme mit Pfaden mit einer Länge von 2.000 Zeichen.

Beachten Sie, dass Sie mit bash zwar Pfade mit erweiterter Länge durchsuchen können, in normalen Windows-Anwendungen jedoch möglicherweise keine Dateien in diesen Pfaden öffnen können. Wenn Sie beispielsweise eingeben, notepadwährend das Arbeitsverzeichnis ein Pfad mit erweiterter Länge ist, erhalten Sie

Fehler: Das aktuelle Arbeitsverzeichnis hat einen längeren Pfad als für ein Win32-Arbeitsverzeichnis zulässig. Die native Windows-Anwendung kann hier nicht gestartet werden.

Und versuchen notepad "\\?\D:\very long path\file.txt"funktioniert auch nicht; es wird gestartet, sagt aber nur "Datei kann nicht gefunden werden ..." Wenn Sie das Gleiche mit Notepad ++ versuchen, stürzt es ab. (Wahrscheinlich ein Pufferüberlauf.)

Sie können auch auf bestimmte Dateien zugreifen, die tief in einem Pfad mit erweiterter Länge vergraben sind, indem Sie den Pfad selbst verkürzen, indem Sie einen NTFS- Junction-Punkt erstellen . An einer Eingabeaufforderung mit erhöhten Rechten:

D:\> mklink /J jct "\\?\D:\very\long\path"

Sie können jetzt auf den Inhalt von D:\very\long\path\von zugreifen D:\jct\. Sie werden keine Probleme mit der Pfadlänge haben, da der Pfad für Explorer und andere Apps einfach ist D:\jct\(oder was auch immer). Der NTFS-Treiber leitet den Pfad (den "Analysepunkt") transparent um.

Der Nachteil dieses Ansatzes ist offensichtlich, dass Sie eine Junction in der Nähe der Datei erstellen müssen, auf die Sie zugreifen möchten. Sie können immer noch nicht einfach die gesamte Verzeichnisstruktur durchsuchen.

In Bezug auf Sonderzeichen ( " * : < > ? \ |) ist das einfach ein No-Go. Diese Zeichen haben in Windows eine besondere Bedeutung. Sie können daher nicht in Pfaden verwendet werden. (Mit Cygwin können Sie Dateien mit Sonderzeichen erstellen . Dies geschieht jedoch, indem Sie die Zeichen durch Unicode-Sonderzeichen ersetzen, die dann beim Lesen ersetzt werden. Das Anzeigen dieser von Cygwin erstellten Dateien unter Linux oder im Explorer würde da nicht richtig aussehen Die Unicode-Zeichen würden nicht zurückgesetzt.)


Alles in allem, was machst du, was sehr lange Wege erfordert? Vielleicht könnten Sie Ihr Leben einfacher machen, indem Sie Ihre Aktivitäten neu bewerten und lange Wege vermeiden. Wahrscheinlich brauchen Sie sowieso keine so langen Wege .

josh3736
quelle
Anscheinend lautet die Antwort "Es gibt keine Software, die das tut, wonach Sie suchen", aber nicht explizit
Aaron
5

Wenn Sie Anwendungen im Textmodus mögen, könnte FAR Manager für Sie von Interesse sein, da ich festgestellt habe, dass er tiefere Verzeichnisstrukturen unterstützt als Windows Explorer (obwohl das zugrunde liegende Windows-Betriebssystem selbst noch einige Einschränkungen auferlegt).

Hierbei handelt es sich um eine native 32-Bit / 64-Bit-Windows-Anwendung, die sich wie Norton Commander (seit DOS das oberste Gebot für Betriebssysteme auf dem PC war) auf die Verzeichnis- (auch als "Ordner" bezeichnet) und Dateiverwaltung spezialisiert hat.

Ich habe sogar Berichte darüber gesehen, dass es als Ersatz für Windows Explorer verwendet wird, aber ich habe es nicht ausprobiert, da ich im Zusammenhang mit der Verwendung als Anwendung recht zufrieden bin. Der unten abgebildete Screenshot enthält die Funktion "Verzeichnisbaum" auf der rechten Seite, die durch Drücken von F9 (Menüleiste), dann "R" (Menü im rechten Bereich) und anschließend "T" (Baumbedienfeldmodus) aktiviert wird. , die für Sie von besonderem Interesse sein können ...

  FAR Manager (kostenlos und Open Source)
  http://www.farmanager.com/

Bildbeschreibung hier eingeben

Randolf Richardson
quelle
Vielen Dank! (1) Ich habe es schon lange versucht. Es gibt zwei Fragen. Ich fühle, wie das Dunkelblau meine Augen strapaziert. Kann es verändert werden? Ich frage mich auch, wie ich eine Anwendung zum Öffnen einer Datei auswählen soll, die entweder nicht erkannt oder in mehreren verschiedenen Anwendungen geöffnet werden kann. (2) Ich habe festgestellt, dass nicht nur Windows Explorer, sondern auch andere Software unter zu langen Pfadnamen leidet. Zum Beispiel möchte ich in Firefox eine Webseite in einem Verzeichnis speichern. Ich kann das Verzeichnis immer noch nicht öffnen, wenn der Name oder der Pfadname zu lang ist. Verlässt sich Firefox auch auf Windows Explorer? Wie kann ich auch dieses Problem lösen?
Tim
Ja, die Farbe kann geändert werden: F9 (Menüleiste), "O" (Optionsmenü), "L" (Farben).
Randolf Richardson
Ich verstehe die zweite Frage zu "... wie man eine Anwendung zum Öffnen einer Datei auswählt ..." nicht ganz. Wenn Sie jedoch bei einer Datei die Umschalttaste drücken, wird sie von den Windows - Dateizuordnungen geöffnet (stattdessen) zu versuchen, eine integrierte Funktion oder ein FAR Manager-Plug-in zu finden, um damit umzugehen).
Randolf Richardson
Bei Ihrer letzten Frage ist mir aufgefallen, dass FAR Manager manchmal etwas längere Pfade bewältigen kann. Ich bin mir nicht sicher, warum dies so ist, aber ich vermute, dass das Problem möglicherweise eine Einschränkung des Windows-Betriebssystems selbst ist.
Randolf Richardson
1
Drücken Sie die Umschalttaste und die Eingabetaste, um Windows zu veranlassen, das Programm zu öffnen. da es nicht erkannt wird, wird Ihnen die übliche Aufforderung zur Auswahl einer Anwendung angezeigt.
Randolf Richardson
4

Es gibt einige Alternativen, aber ich habe nicht geprüft, wie tief die Verzeichnisse sein könnten.

Ich habe Explorer ++ ausprobiert , Opensource und Portable

Explorer ++ Screenshot

und verwende aktuell den Cubic Explorer , ebenfalls OpenSource:

Cubicexplorer Screenshot

Juhele
quelle
Vielen Dank! Ich habe festgestellt, dass nicht nur der Windows Explorer, sondern auch andere Software unter zu langen Pfadnamen leidet. Zum Beispiel möchte ich in Firefox eine Webseite in einem Verzeichnis speichern. Ich kann das Verzeichnis immer noch nicht öffnen, wenn der Name oder der Pfadname zu lang ist. . Verlässt sich Firefox auch auf Windows Explorer? Wie kann ich auch dieses Problem lösen?
Tim
1
@Tim: Möglicherweise stoßen Sie auf eine Einschränkung, die durch das Design von Windows selbst verursacht wird. Mir ist auch aufgefallen, dass die DOS-Eingabeaufforderung sogar Probleme mit sehr langen Pfaden aufweist, obwohl ich durch die Verwendung dieser hässlichen Pfadnamen im "8.3-Stil" (z. B. "C: / PROGRA ~ 2 / SPYBOT ~ 1 /") ein bisschen tiefer gehen kann. . Eine nette Eigenschaft ist jedoch, dass das Mischen dieser kürzeren 8.3-Pfadnamen mit den längeren in den meisten Anwendungen gut zu funktionieren scheint.
Randolf Richardson
@Randolf: Danke! Ich habe die in Ihren und Juheles Beiträgen empfohlene Software ausprobiert. Mit Ausnahme von FAR kann keiner von ihnen auf einen langen Pfad zugreifen, während FAR ein solches Verzeichnis öffnen kann, jedoch keine Datei darunter öffnen kann. Ist das Problem mit dem langen Pfad in Windows-Betriebssystemen enthalten, unabhängig davon, welches Programm zum Durchsuchen von Verzeichnissen verwendet wird? Wenn ja, gibt es keine Möglichkeit, daran vorbei zu kommen?
Tim
@Tim: Ich glaube, Sie haben das Problem mit einer Einschränkung in Windows selbst bestätigt. Können Sie FAR Manage zum Anzeigen der Datei verwenden (F3-Taste nach dem Markieren der Datei)? Was ist mit der Eingabetaste (ohne die Umschalttaste)? (Wenn Sie es anzeigen können, können Sie es auch an einen anderen Speicherort kopieren, an dem Windows es verwenden kann. Dies ist zwar mühsam, ermöglicht aber zumindest den Zugriff auf die Datei.)
Randolf Richardson
4
Ich habe gerade Explorer ++ und Cubic Explorer ausprobiert. Beide scheinen jedoch lange Pfadnamen nicht zu unterstützen.
Xaedes
1

Ich habe den 7-Zip-Dateimanager ausprobiert und es scheint gut mit langen Pfaden zu funktionieren.

Elouan Keryell-Even
quelle
Brillant! Verstecktes Juwel, das ich auf meinem Computer hatte und einfach nicht daran dachte, es zu versuchen. Bonus: Ich hatte einen langen Pfad auf einer Netzwerkfreigabe - und ich bemerkte, dass die Leistung im 7 Zip File Manager verrückt schnell ist im
Vergleich zu
0

Haben Sie Total Commander ausprobiert ? Es ist Shareware. Es scheint mit langen Pfadnamen umzugehen und ist im Allgemeinen ein sehr nützlicher Dateimanager.

das Horn
quelle