Есть две вещи, которые еще не упомянуты в существующих ответах.
- Вы можете использовать расширенный префикс длины пути для доступа к длинным путям
- В Windows 10 вы можете включить поддержку длинных путей для общего использования - однако учтите, что не все приложения будут работать с длинными путями, вам следует протестировать более старое программное обеспечение. Только программное обеспечение с соответствующей записью манифеста сможет использовать это.
Длинный путь префикса
Windows API имеет специальную функцию, которая поддерживает имена путей Unicode длиной до 32 тыс. Символов (каждый элемент длиной до 255 символов).
Это часто ошибочно называют UNC-именами, но это не так.
Префикс, используемый для указания API использовать длинные пути Unicode, является \\?\
как в:
\\?\D:\very long path
Имена UNC обычно используются при обращении к путям на удаленных серверах в форме \\servername\path name\file name
. Вы можете комбинировать это с префиксом длинного пути так: \\?\UNC\server\share
Обратите внимание, что некоторые плохо написанные, но, к сожалению, довольно распространенные приложения не поддерживают пути к файлам UNC и префикс длинных путей.
Ссылка: https://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath
Поддержка длинного пути
Эта опция была добавлена в последние версии Windows 10. На момент написания он не был активирован по умолчанию, так как он требует поддержки конкретного приложения. Интересно, что PowerShell имеет встроенную поддержку, поэтому включение этой опции позволит использовать длинные пути непосредственно в сценариях PowerShell.
Вы можете активировать его через редактор групповой политики, если у вас есть версия Windows с этим. Или вы можете просто использовать следующее изменение реестра. Как всегда, пожалуйста, сделайте резервную копию раздела реестра, который вы изменяете, прежде чем что-либо делать.
- Запустите
regedit.exe
.
- Подтвердите подсказку UAC.
- Перейдите к ключу:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy Objects\{48981759-12F2-42A6-A048-028B3973495F}Machine\System\CurrentControlSet\Policies
- Создайте или измените ключ
LongPathsEnabled
.
- Если он не существует, щелкните правой кнопкой мыши Policies и выберите New> Dword (32-bit) Value из меню.
- Установите для
LongPathsEnabled
значение 1
чтобы включить.
Любые приложения с соответствующими записями манифеста теперь будут иметь доступ к стандартным длинным путям POSIX. Это должно включать приложения Магазина Windows.
Ссылка: https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-on-windows-10/
ОБНОВЛЕНИЕ 2017-04-09
@maoizm указал на проблему с разделом реестра выше, поэтому я немного покопался. Похоже, теперь вы можете установить поддержку длинных имен файлов с помощью системного ключа:
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD)
Это все еще работает только для приложений, которые специально настроены на его использование (требуется запись в manifest.xml приложения).
Вы должны также отметить, что вы не можете использовать относительные имена путей с этим методом.