Как создать каталоги в windows с длиной пути больше 256

У меня есть несколько уровней каталогов в пути к папке. когда путь превышает 256, я не могу создать подпапку или файл из него. Есть ли шанс построить пути больше, чем эта длина. Кто-нибудь может мне помочь.

3 ответов


фактически ограничение на строки пути составляет 260 символов. В наши дни базовая ОС может поддерживать гораздо более длинные имена путей,до 32 767 символов. Чтобы назвать путь с длинным именем, вам нужно использовать magic \?\ префикс и используйте версию API в Юникоде.

однако, многие инструменты не поддерживает такие длинные имена. Классическим примером такого инструмента является Explorer, который не позволяет создавать объекты с именами длиннее 260 символов. Потому что я настоятельно советую вам избегать создания таких длинных имен-это избавит вас от многих страданий в долгосрочной перспективе.


Это должно заставить вас начать:http://msdn.microsoft.com/en-us/library/aa365247%28v=vs.85%29.aspx#maxpath

кроме того, если у вас есть доступ к robocopy (поставляется в комплекте с Windows Vista и 7, но также доступен для XP), который поддерживает длинные пути, вы можете создавать свои файлы / подпапки в более высокая папка, а затем используйте robocopy для перемещения вложенной папки в нужное место глубже в дереве папок.


согласно документации здесь http://msdn.microsoft.com/en-us/library/Aa365247, максимальная длина на самом деле около 32,000, но большинство API windows по-прежнему ограничивают вас MAX_PATH что составляет 260. Есть некоторые API unicode, которые позволяют вам выйти за пределы 260.

смотрите здесь,http://msdn.microsoft.com/en-us/library/aa363856.

в версии ANSI этой функции имя ограничено символами MAX_PATH. К расширьте это ограничение до 32 767 широких символов, вызовите версию функции Unicode и добавьте\?\ на пути. Дополнительные сведения см. В разделе именование файла.