Jak skopiować pliki, które mają zbyt długą ścieżkę do pliku w systemie Windows?

51

Muszę wykonać kopie zapasowe niektórych plików w udziale sieciowym. Muszę jednak skopiować te pliki na dysk lokalny przed wypaleniem dysków, ponieważ pliki te mogą być w użyciu. Niektóre pliki nie zostaną skopiowane, ponieważ ścieżka do pliku jest za długa. Czy istnieje inne obejście niż zmiana struktury pliku?

Brian Sturm
źródło
1
Zobacz także Ograniczenie nazwy ścieżki Windows 256 znaków .
Gilles „SO- przestań być zły”

Odpowiedzi:

27

Maksymalna długość ścieżki wynosi 260 w systemie Windows Vista / 7. Mogę polecić trzy rozwiązania:

  • (jeśli ścieżka jest za długa) Najpierw skopiuj folder na wyższe poziomy w Eksploratorze Windows, a następnie przenieś go na komputer lokalny
  • (jeśli nazwy plików są zbyt długie) Najpierw spróbuj spakować je / rar / 7z za pomocą aplikacji do archiwizacji, a następnie skopiuj plik archiwum na komputer lokalny, a następnie wypakuj zawartość.
  • Użyj aplikacji innych firm.

Wszystkie te sugestie zakładają, że masz jakiś dostęp do zapisu w sieciowym folderze współdzielonym / komputerze. Jeśli nie możesz wykonać żadnej z tych czynności, możesz potrzebować pomocy administratora.

Gani Simsek
źródło
8
skompresowanie plików działało!
Brian Sturm
@BrianSturm, Cóż, zakładając, że są to aplikacje innych firm
Pacerier
Chociaż naprawdę nie lubię tego w systemie Windows ... rozwiązanie zip naprawdę uratowało mi dzień. Dzięki!
Bas Slagter,
66
robocopy /E source destination

Solidne kopiowanie plików i folderów .

Windows 7 i nowszy:
Robocopy XP027 to standardowe polecenie w systemie Windows 7 i nowszym.

NT 4 / Windows 2000:
Narzędzia zestawu Windows Server 2003 Resource Kit obejmują Robocopy XP010,
który można uruchomić na NT 4 / Windows 2000.

Windows 95 lub NT 3.5:
Robocopy nie działa w systemie Windows 95 lub NT 3.5. (Robocopy to aplikacja Unicode).

Obejście systemu Windows 95 lub NT 3.5:
GUI Microsoft Robocopy zainstaluje Robocopy XP026 na C: \ Windows \ system32,
ta wersja może działać na starszych systemach operacyjnych
i zawiera niektóre funkcje z XP027 (/ BYTES), ale ma poprawnie uszkodzoną obsługę poziomu błędu.

„Zadania” Robocopy i opcja „Źródło monitorowania” stanowią alternatywę dla skonfigurowania Zaplanowanego zadania w celu uruchomienia pliku wsadowego za pomocą polecenia Robocopy.

użytkownik19496
źródło
6
To jest rozwiązanie. Jeśli chcesz wyłączyć obsługę ścieżek o długości większej niż 256, przekaż /256flagę. Wielkie dzięki! Walczyłem z tym przez cały dzień.
Automatico
1
niesamowity! Rozwiązanie, którego do tej pory nie znałem. To rozwiązanie typu bult-in.
SIslam,
2
Świetne rozwiązanie - kilka dalszych uwag: (1) miejsce docelowe powinno zawierać nazwę folderu podczas kopiowania folderu - np. W przypadku kopiowania C: \ Windows do D: \ Windows polecenie byłoby robocopy /E C:\Windows D:\Windows(tj. Nie robocopy / EC: \ Windows D: \ ). (2) Może przenosić pliki zamiast kopiować je za pomocą /MOVEopcji.
Steve Chambers
W systemie Windows jest to niezawodne rozwiązanie do korzystania z NAS. Możesz rozpocząć kopiowanie milionów plików, a jeśli transfer zostanie przerwany w połowie, przejdzie do miejsca, w którym zostało przerwane, nie kopiując ponownie wszystkich plików, które zostały już przesłane. Jest to naprawdę cenne, gdy masz połączenie Wi-Fi, które przerywa się sporadycznie, i nadal chcesz móc przenosić dużą liczbę plików z gwarantowanym ukończeniem.
user19496
To nie działa w przypadku plików, które mają nieprawidłowe nazwy w systemie Windows. Czy jest na to flaga, która pomoże?
Richard
16

Możesz uzyskać dostęp do ścieżki o długości do ~ 32 000 znaków, poprzedzając ją \\?\.

\\?\C:\Some\Really\Long\Path

Działa to z wiersza polecenia i innych programów korzystających z metod Win32 Unicode Api, w tym aplikacji .Net. Wymaga systemu plików, który obsługuje długie ścieżki (np. NTFS), ale jeśli masz problem z długą ścieżką, to jest pewne.

Pamiętaj, że niektóre aplikacje i wiele rodzimych narzędzi (takich jak Explorer) będą miały problemy z tymi ścieżkami, więc użyj tego, aby wyjść z dziury, a nie do jednej.

Podstawowy
źródło
2
To naprawdę świetna wskazówka. Pracuję również nad obejściem nazw plików com1, com2 itp.
Andreas Reiff,
2

FastCopy to projekt typu open source C napisany przez SHIROUZU Hiroaki i jest „Najszybszym oprogramowaniem do kopiowania / usuwania w systemie Windows”. Obsługuje UNICODE i nazwy ścieżek plików powyżej MAX_PATH (260 znaków).

Jeśli masz setki ścieżek, które są zbyt długie, aby je naprawić, użyj narzędziaPath Tool Long Auto Fixer

Markus
źródło
2
FastCopy jest naprawdę świetny. W szczególności, w przeciwieństwie do RoboCopy, robi użyteczne rzeczy z połączeniami katalogów / miękkimi linkami.
rlpowell
Doskonały. Alternatywnie istnieje odpowiedź SO, która zawiera listę podobnych programów do szybkiego kopiowania, które zwykle są również zgodne z rozszerzoną ścieżką.
ingyhere
-3

Najszybsza poprawka, jakiej użyłem w tej sytuacji, polegała na zmianie nazwy zbyt długich folderów nazw na „1”.

Ponadto, jako ogólna praktyka, staram się wyjaśnić wszystkim użytkownikom, aby nie umieszczali historii swojego życia w nazwie pliku lub folderu.

Każdy porządny menedżer plików może obsługiwać dłuższe niż 260 znaków.

Overmind
źródło