Jeśli napotykasz błąd „Zbyt długa ścieżka docelowa” (Destination Path Too Long) podczas próby skopiowania lub przeniesienia pliku do folderu w systemie Windows, wypróbuj szybką sztuczkę poniżej. Przyczyną tego błędu jest to, że Eksplorator plików nie mógł skopiować/usunąć/zmienić nazwy ścieżki dłuższej niż 256 znaków.
Nie jest to ograniczenie systemu plików NTFS, ale biblioteka Win32 API. W Win32 API wartość MAX_PATH wynosi 260. Kiedy próbujesz uzyskać dostęp do pliku I/O na określonej ścieżce, Windows API zawsze sprawdza, czy ścieżka jest dłuższa niż limit MAX_PATH.
Większość standardowych aplikacji, w tym Eksplorator Windows (Eksplorator plików), nie działa poprawnie z plikami o długich ścieżkach przekraczających 256 znaków. Pod nazwą pliku system Windows rozumie całą ścieżkę, zaczynając od katalogu głównego dysku, kończąc na ostatnim podfolderze i samej nazwie pliku.
Podczas korzystania z funkcji API Unicode możliwe jest użycie ścieżki o długości do 32767 znaków. Dzięki temu wiele programów firm trzecich (popularne menedżery plików, na przykład FAR i Total Commander) bez problemu przetwarza pliki/foldery, których ścieżka przekracza 256 znaków.
Niektóre programy używają formatu ścieżki pliku UNC (z prefiksem „?”), aby ominąć ograniczenia API Win32. Na przykład bezwzględna ścieżka do pliku może wyglądać tak: \\?\C:\folder1\podfolder1\zbytdluganazwapliku
Ze względu na ograniczenia maksymalnej długości ścieżki administrator może napotkać następujące problemy:
- Użytkownicy mogą tworzyć pliki i foldery we współdzielonym folderze sieciowym, do którego administrator (lub skrypty zarządzania) nie ma dostępu lokalnego.
- Błędy podczas synchronizacji profili mobilnych.
- Błędy w odzyskiwaniu danych z kopii w tle.
- Niepoprawne obliczenie rozmiaru katalogów.
- Utrata plików podczas migracji i transferu danych między serwerami itp.
Naprawa zbyt długiej ścieżki docelowej
Ścieżka docelowa jest za długa
Nazwy plików byłyby zbyt długie dla folderu docelowego. Możesz skrócić nazwę pliku i spróbować ponownie lub wybrać lokalizację z krótszą ścieżką.

Rozwiązanie 1. Zmień nazwę folderu nadrzędnego, aby zmniejszyć pełną ścieżkę
Najprostszym sposobem jest skrócenie nazwy folderów nadrzędnych poprzez zmniejszenie całkowitej długości ścieżki poprzez zmianę jej nazwy. To obejście nie zawsze ma zastosowanie.
Rozwiązanie 2. Utwórz dowiązanie symboliczne
Inną opcją jest utworzenie dowiązania symbolicznego do części ścieżki, skracając w ten sposób całkowitą długość ścieżki. Aby utworzyć dowiązanie symboliczne do folderu z długą ścieżką, możesz użyć następującego polecenia:
|
1 |
mklink /d c:\link "C:\zbytdluganazwapliku" |
Teraz możesz wykonywać wszystkie operacje na plikach (przenoszenie, zmiana nazwy) na katalogu, do którego przypisane jest dowiązanie symboliczne (w naszym przypadku c:\link). Podczas wykonywania operacji na plikach w katalogu dowiązań symbolicznych nie będzie żadnych ograniczeń długości ścieżek.
Rozwiązanie 3. Użyj narzędzia Subst
Inną opcją jest powiązanie folderu (problematycznego) z dyskiem wirtualnym (w naszym przykładzie Z:), za pomocą wbudowanego narzędzia Subst. W ten sposób można również skrócić długość ścieżki:
|
1 |
Subst Z: "C:\zbytdluganazwapliku" |
Teraz możesz pracować z danymi na dysku Z:, w którym ścieżka do plików nie przekroczy limitu ścieżki API Win32. Po zakończeniu zadania możesz usunąć dysk wirtualny za pomocą polecenia Subst z opcją /d:
|
1 |
Subst Z: /d |
Rozwiązanie 4. Ukryta ścieżka udostępniania
Inną opcją jest mapowanie folderu z problemem na dysk wirtualny (na przykład Z:) za pomocą wbudowanego polecenia Subst. W ten sposób można również skrócić długość ścieżki:
|
1 |
Subst Z: "C:\bardzodluganazwasciezki……" |

Teraz możesz pracować z danymi na dysku Z:, gdzie ścieżka pliku nie przekracza limitu ścieżki API Win32. Po zakończeniu zadania możesz usunąć dysk wirtualny za pomocą polecenia Subst z opcją /d:
|
1 |
Subst Z: /d |
Rozwiązanie 5. Omiń długie ścieżki dostępu do plików, mapując folder na literę dysku
Jeśli po prostu chcesz skopiować lub przenieść wiele folderów z jednego miejsca do drugiego, możesz zamapować folder przy użyciu długiej ścieżki na literę dysku.
- Uzyskaj dostęp do folderu docelowego za pomocą ścieżki UNC i przejrzyj go. Skopiuj ścieżkę do schowka; na przykład \servername\d$\users\your_long_path… lub format nazewnictwa plików NT (\?\d:\users\longpath).
- Uwaga. Prefiks „\?\” informuje system Windows o konieczności przerwania dalszego analizowania ciągu ścieżki i przesłania ścieżki po prefiksie bezpośrednio do sterownika systemu plików. W takim przypadku można ominąć ograniczenia interfejsu API systemu Windows i przekroczyć limity MAX_PATH.

3. Otwórz Eksplorator plików i wybierz Ten komputer. Kliknij przycisk Mapuj dysk sieciowy i wybierz Mapuj dysk sieciowy;

4. Wklej długą ścieżkę folderu, wybierz literę dysku, którą chcesz przypisać i kliknij Zakończ (Finish).

5. Teraz możesz skopiować pliki/foldery do tej lokalizacji bez występowania błędu.
Rozwiązanie 6. Użyj polecenia Robocopy do kopiowania i przenoszenia plików
Możesz kopiować lub przenosić pliki, nawet jeśli ścieżki przekraczają limity, korzystając z wbudowanego narzędzia konsoli Robocopy.
Na przykład, jeśli nie możesz usunąć katalogu z powodu limitu długości ścieżki, możesz najpierw przenieść dane z katalogu za pomocą Robocopy:
|
1 |
ROBOCOPY c:\folder1\folder2\folder3\dlugasciezka\ c:\tmp\ /MOVE /E |

Następnie możesz usunąć folder źródłowy:
|
1 |
Delete c:\folder1\folder2\folder3\dlugasciezka\ /q /f |
Rozwiązanie 7. Rozwiązywanie problemu długiej ścieżki pliku w programie PowerShell
W programie PowerShell 5.1 i nowszych wersjach, aby poprawnie obsługiwać długie ścieżki w poleceniach cmdlet Get-Item, Get-ChildItem i Remove-Item, należy użyć parametru LiteralPath zamiast parametru Path.
Na przykład:
|
1 |
Remote-Item -literalpath "\\?\C:\dlugasciezka\bardzodlugasciezka...." |
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).