Aktualizacja:
Odkryłem, że nie tylko Eksplorator Windows, ale także inne oprogramowanie cierpi na zbyt długie nazwy ścieżek. Na przykład w przeglądarce Firefox, gdy zapisuję stronę internetową w katalogu, nadal nie mogę tego zrobić, jeśli jej nazwa lub nazwa ścieżki jest za długa. Czy Firefox korzysta również z Eksploratora Windows? Jak mogę rozwiązać ten problem?
Wypróbowałem oprogramowanie zalecane w dwóch odpowiedziach. Żadna z nich nie ma dostępu do długiej ścieżki. Czy problem Długa ścieżka jest nieodłącznym elementem systemu operacyjnego Windows, niezależnie od programu do przeglądania katalogów? Jeśli tak, czy to znaczy, że nie ma sposobu na obejście tego?
Oryginał: Mam dwa systemy operacyjne zainstalowane na moim laptopie: Windows 7 i Ubuntu 10.10. Dzielą partycję.
W Ubuntu, korzystając z Nautilus, mogę tworzyć katalogi znajdujące się bardzo głęboko w hierarchii ścieżek na partycji współdzielonej. Ale po przejściu do systemu Windows Eksplorator Windows nie zezwala na dostęp do katalogów, które znajdują się zbyt głęboko, tj. Mają zbyt długą nazwę ścieżki.
Również Eksplorator Windows wydaje się nie mieć dostępu do plików i dyrekcji utworzonych w systemie Ubuntu ze znakami specjalnymi w nazwach katalogów i plików.
Zastanawiałem się, co może rozwiązać problem w systemie Windows? Na przykład, czy istnieje inne alternatywne oprogramowanie zastępujące Eksploratora Windows?
Odpowiedzi:
Chociaż NTFS zezwala na ścieżki o długości około 32 000 znaków, znalazłeś ograniczenie długości 259 znaków w API Win32 .
(Dodatkowo
NULL
do ścieżki dołączony jest znak zakończenia, który daje nam 259 użytecznych znaków).Ponieważ Explorer (i prawie wszystkie inne aplikacje Windows) polegają na interfejsie API Win32 do dostępu do systemu plików, obejście tego ograniczenia nie jest praktyczne, nawet jeśli jest to możliwe :
Niestety nie można po prostu wpisać
\\?\D:\very long path
okna Eksploratora. Aplikacja musi być zaprojektowana tak, aby korzystała z tych interfejsów API i obsługiwała bardzo długie nazwy ścieżek.Jednym ze sposobów dostępu do ścieżek o większej długości w systemie Windows jest zainstalowanie Cygwin , warstwy emulacji * nix dla systemu Windows. W moich testach Cygwin nie wydaje się być ograniczony przez
MAX_PATH
; bash i vi nie miały problemów ze ścieżkami o długości 2000 znaków.Pamiętaj, że chociaż możesz używać bash do przeglądania ścieżek o dużej długości, prawdopodobnie nie będziesz w stanie otwierać plików w tych ścieżkach w zwykłych aplikacjach Windows. Na przykład, pisząc,
notepad
gdy katalog roboczy jest ścieżką o większej długości, dostajeszPróbowanie
notepad "\\?\D:\very long path\file.txt"
też nie działa; uruchamia się, ale mówi tylko „Nie można znaleźć pliku ...” Próbowanie tego samego z Notepad ++ powoduje awarię. (Prawdopodobnie przepełnienie bufora.)Inną opcją dostępu do określonych plików zakopanych głęboko w ścieżce o przedłużonej długości jest skrócenie samej ścieżki poprzez utworzenie punktu połączenia NTFS . Z wiersza polecenia z podwyższonym poziomem uprawnień:
Możesz teraz uzyskać dostęp do zawartości
D:\very\long\path\
zD:\jct\
. Nie napotkasz żadnych problemów z długością ścieżki, ponieważ jeśli chodzi o Eksploratora i inne aplikacje, ścieżka jest po prostuD:\jct\
(lub cokolwiek innego). Sterownik NTFS obsługuje przezroczyste przekierowywanie ścieżki („punktu ponownej analizy”).Minusem tego podejścia jest oczywiście to, że musisz utworzyć skrzyżowanie w pobliżu pliku, do którego chcesz uzyskać dostęp; nadal nie możesz po prostu przeglądać całej struktury katalogów.
Jeśli chodzi o znaki specjalne (
" * : < > ? \ |
), to po prostu nie do przejścia. Znaki te mają specjalne znaczenie w systemie Windows, więc nie można ich używać w ścieżkach. (Cygwin pozwala tworzyć pliki ze znakami specjalnymi, ale robi to poprzez zastępowanie znaków znakami specjalnymi Unicode, które następnie zastępuje podczas czytania. Przeglądanie tych plików stworzonych przez Cygwin w systemie Linux lub w Eksploratorze nie wyglądałoby dobrze, ponieważ znaki Unicode nie zostaną zastąpione ponownie).Wszystko to powiedziało: co robisz, co wymaga bardzo długich ścieżek? Być może mógłbyś ułatwić sobie życie, dokonując ponownej oceny tego, co robisz i unikając długich ścieżek. Możliwe, że i tak nie potrzebujesz tak długich ścieżek .
źródło
Jeśli lubisz aplikacje w trybie tekstowym, FAR Manager może Cię zainteresować, ponieważ odkryłem, że może on obsługiwać głębsze struktury katalogów niż Eksplorator Windows (chociaż nadal istnieją pewne ograniczenia narzucone przez sam system operacyjny Windows).
Jest to natywna 32-bitowa / 64-bitowa aplikacja Windows, która podobnie jak Norton Commander (z czasów, gdy DOS był najwyższym władcą systemów operacyjnych na PC), specjalizuje się w Directory (aka „Folder”) i zarządzaniu plikami.
Widziałem nawet raporty o tym, że jest używany jako zamiennik Eksploratora Windows, ale nie próbowałem tego, ponieważ jestem z niego bardzo zadowolony w kontekście używania go jako aplikacji. Zrzut ekranu, który zamieściłem poniżej, zawiera funkcję „Drzewo katalogów” po prawej stronie, którą aktywuje się naciskając F9 (pasek menu), a następnie „R” (menu prawego panelu), a następnie „T” (tryb panelu drzewa) , które mogą Cię szczególnie zainteresować ...
FAR Manager (darmowy i open source)
http://www.farmanager.com/
źródło
istnieje kilka alternatyw, ale nie sprawdziłem, jak głęboko mogą być katalogi.
Próbowałem Explorer ++ , opensource i przenośny
i curretly użyj Cubic Explorer , również opensource:
źródło
Wypróbowałem menedżera plików 7-Zip i wydaje się, że działa dobrze z długimi ścieżkami.
źródło
Czy próbowałeś Total Commander ? To shareware. Wydaje się, że radzi sobie z długimi nazwami ścieżek i jest ogólnie bardzo przydatnym menedżerem plików.
źródło