Alternatywa dla Eksploratora Windows dla długich nazw ścieżek

24

Aktualizacja:

  1. 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?

  2. 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?

Tim
źródło
1
Z jakiego systemu plików korzystałeś na partycji współdzielonej (FAT32, NTFS)?
James P,
1
@James: ntfs ...
Tim
Zapytałbym, dlaczego potrzebujesz takiej długości ścieżki lub głębokości? rozwiązanie wszystkiego, co doprowadziło do przekroczenia limitu 259, jest prawdopodobnie łatwiejsze niż obejście go przez system Windows.
cjb110

Odpowiedzi:

30

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 .

W interfejsie API systemu Windows (z pewnymi wyjątkami omówionymi w [połączonym dokumencie]) maksymalna długość ścieżki wynosi MAX_PATH260 znaków.

(Dodatkowo NULLdo ś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 :

Interfejs API systemu Windows ma wiele funkcji, które również mają wersje Unicode, co pozwala na ścieżkę o rozszerzonej długości dla maksymalnej całkowitej długości ścieżki wynoszącej 32 767 znaków. Ten typ ścieżki składa się ze składników oddzielonych ukośnikami odwrotnymi, każdy do wartości zwracanej w lpMaximumComponentLengthparametrze GetVolumeInformationfunkcji (ta wartość to zwykle 255 znaków). Aby określić ścieżkę o przedłużonej długości, użyj przedrostka „\\? \”. Na przykład „\\? \ D: \ bardzo długa ścieżka ”.

Niestety nie można po prostu wpisać \\?\D:\very long pathokna 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, notepadgdy katalog roboczy jest ścieżką o większej długości, dostajesz

Błąd: bieżący katalog roboczy ma ścieżkę dłuższą niż dozwolona dla katalogu roboczego Win32. Nie można uruchomić natywnej aplikacji Windows stąd.

Pró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ń:

D:\> mklink /J jct "\\?\D:\very\long\path"

Możesz teraz uzyskać dostęp do zawartości D:\very\long\path\z D:\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 prostu D:\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 .

josh3736
źródło
Wygląda na to, że odpowiedź brzmi: „Nie istnieje oprogramowanie, które robi to, czego szukasz”, ale nie jest to jednoznaczne
Aaron,
5

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/

wprowadź opis zdjęcia tutaj

Randolf Richardson
źródło
Dzięki! (1) Próbowałem już FAR. Są dwa pytania. Czuję ciemnoniebieskie zmęczenie oczu, więc czy można to zmienić? Zastanawiam się również, jak wybrać aplikację, aby otworzyć plik, który może nie zostać rozpoznany lub otwarty w kilku różnych aplikacjach. (2) Odkryłem, że nie tylko Eksplorator Windows, ale także inne oprogramowanie ma zbyt długie nazwy ścieżek. Na przykład w przeglądarce Firefox chciałbym zapisać stronę internetową w katalogu, nadal nie mogę otworzyć katalogu, jeśli jego nazwa lub nazwa ścieżki jest zbyt długa. Czy Firefox korzysta również z Eksploratora Windows? Jak mogę rozwiązać ten problem?
Tim
Tak, kolor można zmienić: F9 (pasek menu), „O” (menu Opcje), „L” (kolory).
Randolf Richardson,
Nie do końca rozumiem drugie pytanie dotyczące „... jak wybrać aplikację, aby otworzyć plik ...”, ale jeśli naciśniesz Shift-Enter na pliku, będzie on polegał na powiązaniach plików systemu Windows (zamiast tego próby znalezienia wbudowanej funkcji lub wtyczki FAR Manager do obsługi).
Randolf Richardson,
W ostatnim pytaniu zauważyłem, że FAR Manager zdaje się czasem obsługiwać nieco dłuższe ścieżki. Nie jestem pewien, dlaczego tak jest, ale podejrzewam, że napotkany problem może być ograniczeniem samego systemu operacyjnego Windows.
Randolf Richardson,
1
Użyj Shift-Enter, co spowoduje, że Windows spróbuje go otworzyć; ponieważ nie zostanie rozpoznany, zostanie wyświetlony zwykły monit o wybranie aplikacji.
Randolf Richardson,
4

istnieje kilka alternatyw, ale nie sprawdziłem, jak głęboko mogą być katalogi.

Próbowałem Explorer ++ , opensource i przenośny

Zrzut ekranu Explorer ++

i curretly użyj Cubic Explorer , również opensource:

Zrzut ekranu Cubicexplorer

Juhele
źródło
Dzięki! 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 chciałbym zapisać stronę internetową w katalogu, nadal nie mogę otworzyć katalogu, jeśli jego nazwa lub nazwa ścieżki jest zbyt długa. . Czy Firefox korzysta również z Eksploratora Windows? Jak mogę rozwiązać ten problem?
Tim
1
@Tim: Być może napotykasz ograniczenia wynikające z samej konstrukcji systemu Windows. Zauważyłem również, że podpowiedź DOS ma nawet problemy z naprawdę długimi ścieżkami, chociaż mogę się nieco głębiej, używając tych brzydkich ścieżek w stylu „8.3” (np. „C: / PROGRA ~ 2 / SPYBOT ~ 1 /”) . Jedną fajną cechą jest to, że mieszanie krótszych ścieżek 8.3 z dłuższymi wydaje się działać dobrze w większości aplikacji.
Randolf Richardson,
@Randolf: Dzięki! Wypróbowałem oprogramowanie zalecane w twoich postach i postach Juhele. Wykonując FAR, żaden z nich nie może uzyskać dostępu do długiej ścieżki, podczas gdy FAR może otworzyć taki katalog, nie może otworzyć pliku pod nim. 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?
Tim
@Tim: Myślę, że potwierdziłeś problem z ograniczeniami w samym systemie Windows. Czy możesz użyć FAR Manage, aby wyświetlić plik (klawisz F3 po podświetleniu pliku)? Co powiesz na użycie Enter (bez Shift)? (Jeśli możesz go wyświetlić, możesz również skopiować go do innej lokalizacji, w której system Windows może z niego skorzystać - chociaż jest to żmudne, umożliwia przynajmniej dostęp do pliku.)
Randolf Richardson
4
Właśnie wypróbowałem Explorer ++ i Cubic Explorer. Ale oba wydają się nie obsługiwać długich nazw ścieżek.
xaedes
1

Wypróbowałem menedżera plików 7-Zip i wydaje się, że działa dobrze z długimi ścieżkami.

Elouan Keryell-Even
źródło
Znakomity! Ukryty klejnot, który miałem na komputerze i po prostu nie pomyślałem, aby spróbować. Bonus: Miałem długą ścieżkę do udziału sieciowego - i zauważyłem, że wydajność 7 Zip File Manager jest szalona szybka w porównaniu z niską wydajnością w Eksploratorze Windows
Omaer
0

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óg
źródło