Maximale Pfadlänge in Windows und VBA umgehen?

2 Antworten

VBA benutzt die vom System vorgegebene "Variable" max_path, da geht kaum etwas zu machen.

Was aber möglich ist, die Pfade als Unicode anzugeben. Aus C:\Windows\System32 wird dann zum Beispiel \\?\C:\Windows\System32

Der Nachteil ist allerdings, dass man keine relativen Pfade nutzen kann sondern nur absolute.

Weiß jetzt nicht, wie man das in VB(A) genau realisiert. Habe sowas mal in Delphi gemacht. Die vielen Dateifunktionen alle in eine passende Unicode-Variante zu bringen war nicht gerade lustig.

Nein, daran kannst du nichts ändern. Die 255 Zeichen sind das Maximum. Dateinamen/Pfad kürzen wäre eine Möglichkeit...

Kwalliteht  18.08.2022, 10:51

Es geht länger, das System bietet entsprechende Funktionen an. Ist aber tricky.

0
QQwertz123 
Fragesteller
 18.08.2022, 10:55
@Kwalliteht

habe das schon unter Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled (Type: REG_DWORD), versucht, aber erfolglos

0
Kwalliteht  18.08.2022, 11:00
@Kwalliteht

Nachtrag: NTFS erlaubt Pfadlängen bis zu 65535 Zeichen. Nur eben nicht Ansi- sondern Unicode. Dummerweise benutzen die Dateifunktionen des Win32-API Ansi, also muss man sich entsprechende Wrapper basteln. Dass längere Pfade möglich sind, beweist M$ selbst mit robocopy.

1