python win32 Обход длины имени файла

Я обнаружил, что вы не можете открыть (filepath) , когда длина пути к файлу превышает 255 символов, даже если само имя файла имеет длину 10 символов (оставшаяся часть - это каталог путь).

Есть идеи обойти эту проблему? (python 2.6 на win32)

9
задан Tom Zych 9 November 2015 в 08:41
поделиться

2 ответа

Самый общий подход к этому - добавить к пути префикс \\\\? \\ ( ссылка ). Имейте в виду, что это отключает определенную предварительную обработку на пути, но ничего серьезного IMO.

Также я могу отметить, что на 32-битной Windows Server 2003 с Python 2.7 мне приходилось использовать префиксный путь Unicode ( u "\\\\\\\\? \\\\" префикс или ur "\\\\? \\" ), поскольку (как указано в справочнике ) функции API, отличные от Unicode, могут по-прежнему ограничиваться длиной MAX_PATH , даже если используется префикс.

например, ur "\\\\? \\ c: \ temp \ .... \ abc.txt"

15
ответ дан 4 December 2019 в 12:57
поделиться

Решение на уровне ОС Windows заключается в использовании команды DOS SUBST для определения псевдодиска в определенном каталоге.

SUBST Q: C:\really\long\path\name\full\of\sub\directories

Затем вы можете получить доступ к файлам в этом каталоге как Q: filename .

1
ответ дан 4 December 2019 в 12:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: