2014-12-28 8 views
50

Может ли кто-то рассказать нам/мне, если MAX_PATH issue все еще существует (технический предварительный просмотр) Windows 10. И если он существует: сколько символов может содержать путь и имя отдельного файла ?Проблема с MAX_PATH все еще существует в Windows 10

+9

Оставьте комментарий, когда вы голосуете. Например. некоторый URL, где ответ можно легко найти. Или что не так с самим вопросом. – dkeck

+0

попробуйте Build 14352 и установите запись GP – magicandre1981

+0

Используйте параметр групповой политики или измените реестр вручную. См. Https://news.slashdot.org/story/16/05/31/0012222/microsoft-removes-260-character-path-length-limit-in-windows-10-redstone – holmb

ответ

43

Проблема будет всегда присутствовать в Windows, чтобы поддерживать совместимость со старым программным обеспечением. Use the NT-style name syntax"\\?\D:\very long path" обходной вопрос.

В Windows 10 (версия 1607 - Годовщина Update) и Windows Server 2016 вы, кажется, есть возможность игнорировать вопрос MAX_PATH по overriding a group policy entry enable NTFS long paths под Computer Configuration ->Admin Templates ->System ->FileSystem:

enter image description here

enter image description here

приложение должно иметь запись longPathAware аналогичной DPIAware в манифесте приложения.

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" > 
    <asmv3:application> 
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings"> 
     <longPathAware>true</longPathAware> 
    </asmv3:windowsSettings> 
    </asmv3:application> 
</assembly> 
+9

Почему Linux или Mac не сталкивались с этими проблемами совместимости? Почему нельзя использовать API-интерфейс, отличный от Unicode Win32 (с некоторыми условиями в существующих функциях обработки ввода-вывода), чтобы иметь возможность использовать, например, MAX_PATH2 = 4096 (или умное динамическое распределение). Старое программное обеспечение будет использовать только прежнюю часть реализации. Но новое программное обеспечение, особенно продукты Microsoft (включая cmd, explorer, powershell, VS), должно использовать новые функции. ОС должна скрыть всю эту техническую историю: «Просто используйте dev: \ path \ file.ext и меня ОС решит, что лучший выбор». – dkeck

+4

спросите этого Microsoft. Мы не можем сказать вам, почему и как они принимали решения по этому вопросу. – magicandre1981

+3

Они обсуждали хардкор о фиксации его для win10 и, наконец, просто нарушая совместимость. Я не уверен, где они приземлились по этому вопросу, но они действительно думают об этом. –

0

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