Обновить:
Я обнаружил, что не только Windows Explorer, но и другое программное обеспечение страдает от слишком длинных путей. Например, в Firefox, когда я сохраняю веб-страницу в каталоге, я все равно не могу этого сделать, если ее имя или путь слишком длинные. Firefox также полагается на Windows Explorer? Как я могу решить эту проблему тоже?
Я попробовал программное обеспечение, рекомендованное в двух ответах. Никто из них не может получить доступ к длинному пути. Является ли проблема «Длинного пути» присущей ОС Windows, независимо от того, какая программа просматривает каталоги? Если да, значит ли это, что нет способа обойти это?
Оригинал: на моем ноутбуке установлены две ОС: Windows 7 и Ubuntu 10.10. Они делят раздел.
В Ubuntu, используя Nautilus, я могу создавать каталоги, которые расположены очень глубоко в иерархии путей в общем разделе. Но при переключении в Windows проводник Windows не разрешает доступ к каталогам, которые расположены слишком глубоко, то есть имеют слишком длинный путь.
Также Windows Explorer не может получить доступ к файлам и директорам, созданным в Ubuntu, со специальными символами в именах каталогов и файлов.
Мне было интересно, что может решить проблему в Windows? Например, есть ли другое альтернативное программное обеспечение для замены Windows Explorer?
Ответы:
Хотя NTFS допускает пути длиной около 32 000 символов, вы обнаружили ограничение длины пути в 259 символов в Win32 API .
(К путю добавлен
NULL
символ завершения, дающий нам 259 используемых символов.)Поскольку Explorer (и почти все другие приложения Windows) полагаются на Win32 API для доступа к файловой системе, обойти это ограничение не практично, даже если это возможно :
К сожалению, вы не можете просто ввести
\\?\D:\very long path
в окне проводника. Приложение должно быть разработано так, чтобы использовать преимущества этих API и обрабатывать очень длинные пути.Один из способов доступа к путям расширенной длины в Windows - установить Cygwin , слой эмуляции * nix для Windows. В моем тестировании Cygwin не ограничен
MAX_PATH
; У bash и vi не было проблем с путями длиной 2000 символов.Имейте в виду, что даже если вы можете использовать bash для просмотра путей расширенной длины, вы, вероятно, не сможете открывать файлы по этим путям в обычных приложениях Windows. Например,
notepad
при вводе в рабочем каталоге расширенного пути вы получитеИ попытки
notepad "\\?\D:\very long path\file.txt"
тоже не работают; он запускается, но просто говорит: «Не удается найти файл ...». Попытка повторить то же самое с Notepad ++ приводит к сбою. (Вероятно, переполнение буфера.)Другой доступ к определенным файлам, зарытым глубоко внутри пути расширенной длины, - сократить сам путь путем создания точки соединения NTFS . Из командной строки с повышенными правами:
Теперь вы можете получить доступ к содержанию
D:\very\long\path\
изD:\jct\
. Вы не столкнетесь ни с какими проблемами длины пути, потому что для Explorer и других приложений путь простоD:\jct\
(или любой другой). Драйвер NTFS обеспечивает прозрачное перенаправление пути («точка повторной обработки»).Недостатком этого подхода является то, что вы должны создать соединение рядом с файлом, к которому хотите получить доступ; Вы все еще не можете просто просмотреть всю структуру каталогов.
Что касается специальных символов (
" * : < > ? \ |
), то это просто запрет. Эти символы имеют особое значение в Windows, поэтому их невозможно использовать в путях. (Cygwin позволяет создавать файлы со специальными символами, но делает это путем замены символов специальными символами Unicode, которые затем заменяет их при чтении. Просмотр этих файлов, созданных Cygwin, в Linux или в проводнике выглядит неправильно, так как символы Юникода не будут заменены обратно.)Все это говорит о том, что вы делаете, что требует очень долгих путей? Возможно, вы могли бы облегчить свою жизнь, переоценив то, что делаете, и избегая долгих путей. Скорее всего, вам не нужны такие длинные пути .
источник
Если вам нравятся приложения в текстовом режиме, тогда FAR Manager может быть вам интересен, поскольку я обнаружил, что он может поддерживать более глубокие структуры каталогов, чем Windows Explorer (хотя все еще существуют некоторые ограничения, накладываемые самой операционной системой Windows).
Это родное 32-битное / 64-битное Windows-приложение, которое, как и Norton Commander (со времен, когда DOS был верховным правителем операционных систем на ПК), специализируется на работе с каталогами (иначе говоря, «папка») и управлении файлами.
Я даже видел сообщения о том, что он используется в качестве замены для Windows Explorer, но я не пробовал это, потому что я весьма доволен этим в контексте использования его в качестве приложения. Снимок экрана, который я включил ниже, показывает функцию «Дерево каталогов» с правой стороны, которая активируется нажатием F9 (строка меню), затем «R» (меню правой панели), а затем «T» (режим панели дерева) , который может представлять для вас особый интерес ...
FAR Manager (бесплатный и с открытым исходным кодом)
http://www.farmanager.com/
источник
Есть несколько альтернатив, но я не проверял, насколько глубоко могут быть каталоги.
Я пробовал Explorer ++ , с открытым исходным кодом и портативный
и точно используйте Cubic Explorer , также с открытым исходным кодом:
источник
Я попробовал файловый менеджер 7-Zip, и он, кажется, хорошо работает с длинными путями.
источник
Вы пробовали Total Commander ? Это условно. Кажется, он имеет дело с длинными путями и является очень полезным файловым менеджером в целом.
источник