Czy system Windows 7 naprawił limit 255 znaków ścieżki pliku?


92

Jak rozumiem, ograniczenie do 255 znaków w ścieżce pliku jest ograniczeniem systemu Windows. Jaki jest tego powód? Jeśli tak, czy problem został rozwiązany w systemie Windows 7?

W naszych praktykach ciągłej integracji często mamy głęboko zagnieżdżone struktury projektów i byłoby niezwykle przydatne, gdybyśmy mogli przekroczyć 255 znaków. W tej chwili jesteśmy nieco zmuszeni do konstruowania naszych projektów w taki sposób, aby nie uderzyć w ten sztuczny sufit.


3
@DavidHeffernan Ale to 260 zawiera znak null na końcu i `C: \` na początku, więc tylko 255 znaków jest użytecznych.
Aaron Dufour

2
@DavidHeffernan Myliłem się. Microsoft często cytuje długość jako 256, co jest wynikiem prawidłowego odejmowania, a nie 260, co jest technicznie ograniczeniem.
Aaron Dufour

5
Ten problem mnie wkurza. Nadal jest obecny w systemie Windows 8.1. Wydaje się, że nie mogę przenosić moich plików, mimo że w JAKIŚCIE plik został utworzony w pierwszej kolejności. Jeśli znajdziesz sposób na utworzenie plików z ponad 255 nazwami ścieżek plików, możesz całkowicie zepsuć czyjś komputer z systemem Windows.
Automatico

Według Jeremy'ego Kuhne problem jest rozwiązywany i może wkrótce znaleźć rozwiązanie. Zobacz ten film. youtube.com/watch?v=ZppqEMegCAA
J Edward Ellis

Pytanie dotyczy systemu Windows 7, ale system Windows 10 ma opcję włączenia długich ścieżek dla niektórych aplikacji. Aby uzyskać więcej informacji, zapoznaj się z tą odpowiedzią: stackoverflow.com/questions/27680647/ ...
quasoft

Odpowiedzi:


44

Zobacz http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

Wyjaśnia to, że wersje Unicode interfejsów API systemu Windows mają wyższe limity i jak to włączyć.


14
Ale słowo ostrzeżenia: jest trochę kodu (głównie narzędzia systemowe innych firm i tym podobne), który nie działa dobrze z dłuższymi ścieżkami. Możesz mieć z tym problemy, jeśli zaczniesz używać dłuższych ścieżek.
Przywróć Monikę Larry Osterman

2
Czy ten artykuł jest poprawny? Zrobiłem prosty test z Eksploratorem Windows i wierszem polecenia systemu Windows w systemie Windows 7 i nie mogę utworzyć ścieżek plików zawierających ponad 260 znaków. Czy firma Microsoft nie zaktualizowała tych aplikacji, aby korzystały z wersji Unicode interfejsów API systemu Windows?
Templar

7
Niestety Eksplorator Windows w systemie Windows 7 x64 nadal podlega temu limitowi ścieżki. Sprawia to wrażenie, że cały system operacyjny nie przekroczył tego ograniczenia, podczas gdy tak naprawdę to tylko Eksplorator Windows nie został zaktualizowany do pracy z dłuższymi ścieżkami. Jest możliwe, że menedżer plików innej firmy korzystający z najnowszych interfejsów API mógłby to obejść. Ostatecznie to, czy program wydaje się osiągać limit ścieżki, będzie zależeć od tego, czy program ten używa najnowszych interfejsów API w systemie Windows.
user1445967

2
Nie jest to kwestia „nowszych” czy „starszych” interfejsów API. Obsługa długich ścieżek jest dostępna tylko wtedy, gdy wyraźnie o to poprosisz, a Explorer tego nie robi, prawdopodobnie z oczywistego powodu: kompatybilności z istniejącymi aplikacjami innych firm.
Harry Johnston

9
-1 - Odnośnik do potencjalnego rozwiązania jest zawsze mile widziany, ale proszę dodać kontekst do niego, aby inni użytkownicy mieli pojęcie, co to jest i dlaczego się tam znajduje. Zawsze cytuj najbardziej odpowiednią część ważnego linku, na wypadek gdyby strona docelowa była nieosiągalna lub została trwale wyłączona. meta.stackoverflow.com/tags/link-only-answers/info
Aaron Hall

20

Jeśli zajdzie taka potrzeba, możesz ominąć ten limit, używając subst.



1
Lub robocopy, która jest wbudowana w system Windows, w oparciu o tę odpowiedź, stackoverflow.com/questions/29865863/ ...
KAE

5
Powinieneś zademonstrować, jak i podać link do odpowiedniej dokumentacji. -1
Aaron Hall

3
Chociaż głosowałem za, zgadzam się, że przykład byłby przydatny: dzięki subst E: D:\TESTDATA\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1 temu mogłem obejść ścieżkę o głębokości 500 znaków. Powodem ~ 1s jest sposób, w jaki Explorer sformatował ścieżkę.
Adam Marcionek

1
Podobnym rozwiązaniem byłoby użycie skrzyżowań , albo przez przedłużenie powłoki, albo przez mklink Przykład:mklink /J C:\newdir C:\some\really\long\path\
Charles Grunwald

14

Obejścia nie są rozwiązaniami, dlatego odpowiedź brzmi „Nie”.

Wciąż szukam obejść, oto możliwe rozwiązania: http://support.code42.com/CrashPlan/Latest/Troubleshooting/Windows_File_Paths_Longer_Than_255_Characters


1
Podstawowe elementy systemu Windows, w tym PowerShell, Windows Explorer Shell i narzędzia cmd, takie jak del, nadal nie obsługują ścieżek przekraczających 250 znaków, a żadne obejście nie rozwiązuje faktu, że podstawowe technologie firmy Microsoft nie obsługują długich ścieżek od 2016 r. Krótka odpowiedź tutaj jest tak, że dopóki Microsoft nie zacznie działać, niewiele możemy zrobić.
Warren P


1

W systemie Windows 10 w wersji 1607 ograniczenie zostało usunięte poprzez ustawienie klucza rejestru

https://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx?f=255&MSPPError=-2147217396#maxpath


2
ale nie w windows 7?
gumuruh

Nie wydaje się rozsądne, aby tak naprawdę głosować w dół, ponieważ chociaż nie odpowiada to na pytanie, prawdopodobnie jest przydatne dla wielu osób, które mają podobne pytania.
mwfearnley

Są jednak inne pytania dotyczące Win10
mjs
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.