Ist das MAX_PATH-Problem in Windows 10 noch vorhanden?

78

Kann uns bitte jemand sagen, ob das MAX_PATH-Problem in (der technischen Vorschau von) Windows 10 noch besteht? Und wenn es existiert: Wie viele Zeichen kann ein Pfad und ein einzelner Dateiname haben?

dkeck
quelle
12
Bitte hinterlassen Sie einen Kommentar, wenn Sie abstimmen. ZB eine URL, unter der die Antwort leicht gefunden werden konnte. Oder was ist los mit der Frage selbst.
Dkeck
Probieren Sie den Build 14352 aus und setzen Sie den GP-Eintrag
magicandre1981
Verwenden Sie entweder die Gruppenrichtlinieneinstellung oder ändern Sie die Registrierung manuell. Siehe news.slashdot.org/story/16/05/31/0012222/…
holmb
Ich habe dies kürzlich bei der Installation von Python erwähnt gesehen, da sie nach der Installation eine Option zum Deaktivieren des MAX_PATHLimits haben. Warum sollte jemand einen Pfadnamen haben, der länger als 260 Zeichen ist?
Ungeheuer

Antworten:

72

Das Problem tritt immer in Windows auf, um die Kompatibilität mit alter Software zu gewährleisten. Verwenden Sie die Namenssyntax im NT-Stil, "\\?\D:\very long path" um dieses Problem zu umgehen.

In Windows 10 (Version 1607 - Jubiläumsupdate) und Windows Server 2016 haben Sie anscheinend die Möglichkeit, das Problem MAX_PATH zu ignorieren, indem Sie einen Gruppenrichtlinieneintragenable NTFS long paths unter Computer Configuration-> Admin Templates-> System-> überschreibenFileSystem :

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Die Anwendungen müssen einen longPathAwareähnlichen Eintrag wie DPIAware im Anwendungsmanifest haben.

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
      <longPathAware>true</longPathAware>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>
magicandre1981
quelle
14
Warum waren Linux oder Mac nicht mit diesen Kompatibilitätsproblemen konfrontiert? Warum kann die Nicht-Unicode-Win32-Datei-API nicht erweitert werden (mit einigen Bedingungen in den vorhandenen E / A-Verarbeitungsfunktionen), um z. B. MAX_PATH2 = 4096 (oder eine clevere dynamische Zuordnung) verwenden zu können? Die alte Software verwendet dann nur den alten Teil der Implementierung. Die neue Software, insbesondere Microsoft-Produkte (einschließlich cmd, Explorer, Powershell, VS), sollte jedoch die neuen Funktionen nutzen. Das Betriebssystem sollte all diese technische Geschichte in den Schatten stellen: "Verwenden Sie einfach dev: \ path \ file.ext und ich werde entscheiden, was die beste Wahl ist."
Dkeck
4
Fragen Sie diesen Microsoft. Wir können Ihnen nicht sagen, warum und wie sie Entscheidungen zu diesem Thema getroffen haben.
magicandre1981
6
Ja, es ist mir egal, wie sie es machen, aber warum zwingen sie uns immer noch, MAX_PATH im Jahr 2015 zu respektieren ...
Ryan Mann
4
260 Zeichen sollten für jeden ausreichen;)
Paulm
8
@ Andrews Der Explorer ist noch nicht über lange Wege informiert. sie arbeiten immer noch daran
magicandre1981
6

Hier ist ein ansible Code, der lange Pfade ermöglicht, um all das Klicken auf die Antwort @ magicandre1981 zu vermeiden. Dies wurde unter Windows Server 2016 getestet und sollte auch unter Windows 10 funktionieren.

- name: Remove filesystem path length limitations
  win_regedit:
    path: HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem
    name: LongPathsEnabled
    type: dword
    data: 1
    state: present
liberforce
quelle
upvote für ansible. Vielen Dank!
semtex41
1

Ja, es existiert noch. Ich bin gerade auf ein Problem gestoßen, und die übliche Methode, ein Netzlaufwerk zuzuordnen, um den Pfad zu verkürzen, ließ mich die Dateien nicht öffnen, aber ich konnte sie umbenennen und verschieben.

Gareth Oates
quelle
1
substist dein Freund
evandrix