Альтернатива проводнику Windows для длинных путей

обновление:

  1. Я обнаружил, что не только проводник, но и другое программное обеспечение
    страдает от слишком длинных путей. Например, в Firefox, когда я
    сохраните веб-страницу в каталоге, я все еще не могу сделать это, если его имя или
    слишком длинное имя пути. Firefox также полагается на Проводник Windows?
    Как я могу решить эту проблему?

  2. Я попробовал программное обеспечение, рекомендованное в двух ответах. Ничего из
    им может достаться долгий путь. Есть проблема длинного пути, присущая
    ОС Windows, независимо от того, какая программа для просмотра каталогов? Если
    да, значит ли это, что нет способа обойти это?

Оригинал: у меня есть две операционные системы, установленные на моем ноутбуке: Windows 7 и Ubuntu 10.10. У них общий раздел.

в Ubuntu, используя Nautilus, я могу создавать каталоги, которые расположены очень глубоко в иерархии путей на Общем разделе. Но при переключении на Windows, Проводник Windows не позволяет получить доступ к каталогам, которые расположены слишком глубоко, т. е. имеют слишком длинное имя пути.

также Проводник Windows, кажется, не в состоянии получить доступ к файлам и директориям, созданным под Ubuntu со специальными символами в каталогах и именах файлов.

Мне было интересно, что может решить проблему в Windows? Например, существуют ли другие альтернативные программы для замены Проводника Windows?

26
задан studiohack
12.02.2023 6:39 Количество просмотров материала 3522
Распечатать страницу

5 ответов

в то время как NTFS позволяет пути длиной около 32000 символов, вы нашли 259-ограничение длины пути символов Win32 API.

в Windows API (за некоторыми исключениями, описанными в [связанном документе]) максимальная длина пути MAX_PATH, что определяется как 260 символов.

(дополнительно к NULL символ завершения, добавленный к пути, дает нам 259 полезных письмена.)

потому что Explorer (и почти все другие приложения Windows) полагаются на Win32 API для доступа к файловой системе, это не практические чтобы обойти это ограничение, даже если это возможно:

API Windows имеет много функций, которые также имеют версии Unicode, чтобы разрешить путь расширенной длины для максимальной общей длины пути 32 767 символов. Этот тип Пути состоит из компонентов, разделенных обратной косой чертой, каждый до значения, возвращаемого в lpMaximumComponentLength параметр GetVolumeInformation функция (обычно это 255 символов). Чтобы указать путь расширенной длины, используйте"\\?\" префикс. Например, "\\?\D:\очень длинный путь".

к сожалению, вы не можете просто ввести \?\D:\very long path в окне Проводника. Приложение должно быть разработано таким образом, чтобы использовать преимущества этих API и обрабатывать очень длинные имена путей.

один из способов доступа к путям расширенной длины под Windows стоит установить Cygwin, слой эмуляции *nix для Windows. В моем тестировании Cygwin не ограничен MAX_PATH; bash и vi не имели проблем с путями длиной 2000 символов.

имейте в виду, что даже если вы можете использовать bash для просмотра путей расширенной длины, вы, вероятно, не сможете открывать файлы в этих путях в обычных приложениях Windows. Например, введите notepad пока рабочий каталог-это расширенная длина пути получает ты

ошибка: текущий рабочий каталог имеет путь длиннее, чем разрешено для рабочего каталога Win32. Не удается запустить собственное приложение Windows отсюда.

и пытаются notepad "\?\D:\very long path\file.txt" тоже не работает; он запускается, но просто говорит "Не удается найти файл ..."Попробуйте то же самое с Notepad++ падает он. (Возможно переполнение буфера.)

ваш другой вариант для доступа к конкретным файлам похоронен глубоко в пути расширенной длины является сократить себе путь при создании файловой системы NTFS узел. Из командной строки:

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

теперь вы можете получить доступ к содержимому D:\very\long\path\ С D:\jct\. Вы не столкнетесь с проблемами длины пути, потому что, что касается Explorer и других приложений, путь просто D:\jct\ (или что-то еще). Драйвер NTFS прозрачно обрабатывает перенаправление пути ("точка повторной обработки").

недостатком этого подхода является очевидно, что вам нужно создать соединение рядом с файлом, к которому вы хотите получить доступ; вы все еще не можете просто просмотреть всю структуру каталогов.

что касается специальных символов (" * : < > ? \ |), это просто запрет. Эти символы имеют специальные значения в Windows, поэтому их невозможно использовать в путях. (Cygwin позволяет создавать файлы со специальными символами, но делает это с помощью замена символов со специальными символами Юникода, затем подставляет обратно при чтении. Просмотр этих Cygwin-созданных файлов под Linux или в Проводнике не будет выглядеть правильным, так как символы Юникода не будут заменены обратно.)


все это говорит о том, что вы делаете, что требует очень длинных путей? Возможно, вы могли бы сделать свою жизнь проще, переоценивая то, что вы делаете, и избегая длинных путей. Скорее всего, вы не нужны пути, которые так долго в любом случае.

29
отвечен josh3736 2023-02-13 14:27

есть несколько альтернатив, но я не проверял, насколько глубоко могут быть каталоги.

пробовал Explorer ++, OpenSource и портативный

Explorer ++ screenshot

и curretly использовать Кубических Обозреватель, также opensource:

Cubicexplorer screenshot

5
отвечен Juhele 2023-02-13 16:44

Если вам нравятся приложения в текстовом режиме, то FAR Manager может быть вам интересен, поскольку я обнаружил, что он может поддерживать более глубокие структуры каталогов, чем проводник Windows (хотя все еще есть некоторые ограничения, накладываемые самой базовой ОС Windows).

это родное 32-bit / 64-bit применение Windows которое, как командир Norton (от дней когда DOS было высшим правителем операционных систем на ПК), специализирует в директории (a.k.a. "Folder") и File управление.

Я даже видел сообщения о том, что он используется в качестве замены для Проводника Windows, но я не пробовал это, потому что я очень доволен этим в контексте использования его в качестве приложения. скриншот, который я включил ниже, имеет функцию " дерево каталогов "с правой стороны, которая активируется нажатием F9 (строка меню), затем" R "(меню правой панели), а затем" T " (режим панели дерева), который может представлять особый интерес для вас...

  FAR Manager (free and open source)

  http://www.farmanager.com/

enter image description here

5
отвечен Randolf Richardson 2023-02-13 19:01

Я пробовал 7-Zip file manager и, похоже, он отлично работает с длинными путями.

1
отвечен Elouan Keryell-Even 2023-02-13 21:18

ты пробовал Total Commander? Это условно. Похоже, он имеет дело с длинными путями и является очень полезным файловым менеджером в целом.

0
отвечен the_horn 2023-02-13 23:35

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх