20 дек. 2012 г.

Windows API: Обход ограничения на максимальную длину пути.

Есть категория людей, идущих столь далеко по пути каталогизации и упорядочивания своих файлов, что рано или поздно сталкивается с ошибкой при создании очередной папочки (или длинно-описательного имени файла) вида "Имя файла (папки) слишком длинно, укоротите или создайте в другом месте". По этому поводу нашлась хорошая статья на MSDN.
Если вкратце, то да, существует в WinAPI ограничение на максимальную длину пути MAX_PATH, равная 260 символам. Обойти его можно, обращаясь к файлам/папкам через префикс \\?\ (максимальная длина пути в таком случае - 32 767 символов). То есть, например,
mkdir "\\?\C:\very-very-very\long-long\path\filename.ext"
Создать такое прводоником у меня не получилось (может, плохо пытался), однако внутри созданной из командной строки папки новые подпапки создаются проводником без вопросов.