Es gibt zwei Dinge, die in den vorhandenen Antworten nicht bereits erwähnt wurden:
- Sie können das Pfadpräfix extended length verwenden, um auf lange Pfade zuzugreifen
- Mit Windows 10 können Sie die Unterstützung für lange Pfade für den allgemeinen Gebrauch aktivieren - beachten Sie jedoch, dass nicht alle Anwendungen mit langen Pfaden funktionieren, Sie sollten ältere Software testen. Nur Software mit einem entsprechenden Manifesteintrag kann davon Gebrauch machen.
Long Path Prefix
Die Windows-API hat eine spezielle Funktion, die Unicode-Pfadnamen mit einer Länge von bis zu 32k Zeichen unterstützt (wobei jedes Element bis zu 255 Zeichen lang sein kann).
Dies wird oft fälschlicherweise als UNC-Benennung bezeichnet, obwohl es nicht verwandt ist.
Das Präfix, das verwendet wird, um der API mitzuteilen, dass sie lange Unicode-Pfade verwenden soll, ist `\?Es gibt zwei Dinge, die in den vorhandenen Antworten nicht bereits erwähnt wurden:
- Sie können das Pfadpräfix extended length verwenden, um auf lange Pfade zuzugreifen
- Mit Windows 10 können Sie die Unterstützung für lange Pfade für den allgemeinen Gebrauch aktivieren - beachten Sie jedoch, dass nicht alle Anwendungen mit langen Pfaden funktionieren, Sie sollten ältere Software testen. Nur Software mit einem entsprechenden Manifesteintrag kann davon Gebrauch machen.
Long Path Prefix
Die Windows-API hat eine spezielle Funktion, die Unicode-Pfadnamen mit einer Länge von bis zu 32k Zeichen unterstützt (wobei jedes Element bis zu 255 Zeichen lang sein kann).
Dies wird oft fälschlicherweise als UNC-Benennung bezeichnet, obwohl es nicht verwandt ist.
Das Präfix, das verwendet wird, um der API mitzuteilen, dass sie lange Unicode-Pfade verwenden soll, ist wie in:
\?\D:\very long path
UNC-Namen werden normalerweise verwendet, wenn auf Pfade auf entfernten Servern in der Form \servername\path name\file name
verwiesen wird. Sie können dies mit dem langen Pfadpräfix so kombinieren: \?\UNC\server\share
Beachten Sie, dass einige, schlecht geschriebene, aber leider recht häufige Anwendungen weder UNC-Dateipfade noch das lange Pfadpräfix unterstützen.
Referenz: https://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath
Unterstützung für lange Pfade
Dies ist eine Option, die zu neueren Versionen von Windows 10 hinzugefügt wurde. Sie ist zum Zeitpunkt des Verfassens dieses Artikels nicht standardmäßig aktiviert, da sie spezielle Anwendungsunterstützung erfordert. Interessanterweise verfügt PowerShell über integrierte Unterstützung, so dass die Aktivierung dieser Option die direkte Verwendung langer Pfade in PowerShell-Skripts ermöglicht.
Sie können sie über den Gruppenrichtlinien-Editor aktivieren, wenn Sie eine Version von Windows mit dieser Unterstützung besitzen. Oder Sie können einfach die folgende Registrierungsänderung verwenden. Bitte sichern Sie wie immer den Abschnitt der Registrierung, den Sie ändern, bevor Sie etwas tun.
- Führen Sie
regedit.exe
.
- Bestätigen Sie die UAC-Eingabeaufforderung.
- Navigieren Sie zum Schlüssel:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy Objects\{48981759-12F2-42A6-A048-028B3973495F}Machine\System\CurrentControlSet\Policies
- Erstellen oder ändern Sie den Schlüssel
LongPathsEnabled
.
- Falls er nicht vorhanden ist, klicken Sie mit der rechten Maustaste auf Policies und wählen Sie aus dem Menü Neu > Dword (32-Bit) Wert.
- Setzen Sie
LongPathsEnabled
auf 1
, um ihn zu aktivieren.
Alle Anwendungen mit entsprechenden Manifesteinträgen haben jetzt Zugriff auf lange POSIX-Standardpfade. Dies sollte auch Windows-Store-Anwendungen einschließen.
Referenz: https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-on-windows-10/
UPDATE 2017-04-09
@maoizm wies auf ein Problem mit dem obigen Registrierungsschlüssel hin, also habe ich etwas weiter gegraben . Es sieht so aus, als könnten Sie jetzt die Unterstützung für lange Dateinamen mit einem Systemschlüssel einstellen:
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD)
Dies funktioniert allerdings nur für Anwendungen, die speziell dafür eingestellt sind (erfordert einen Eintrag in der manifest.xml der Anwendung).
Sie sollten auch beachten, daß Sie mit dieser Methode keine relativen Pfadnamen verwenden können.