2016-02-04 7 views
-1

Я работаю над проектом, в котором хранятся файлы с очень длинными путями.\? UNC server share path file.exe не работает

Мне нужно использовать сетевые пути, такие как \\server\share\files.. пути. Но я не могу понять, почему он не работает. Я бегу Win7

\\server\share\path\file.exe (Это работает, но не очень длинных путей ~ 266 голец длинных)

Эта вики страница https://en.wikipedia.org/wiki/Path_%28computing%29 указывает, что синтаксис \\?\UNC\server\share\path\file.exe должен работать для более длинных трасс, но я не могу заставить его работать для длинных или коротких путей .. Не поддерживается для Win7?

У любого есть решение, как я могу указать на длинные сетевые пути, используя синтаксис \\xxx длиной ~ 266 символов?

+0

Синтаксис работает, как показано в Windows 7. Наиболее вероятной причиной вашей проблемы является то, что вы не используете функции API Юникода, функции ANSI API не поддерживают длинные пути. Если это не решит проблему, отправьте пример кода. –

+0

Для того, чтобы открыть этот (скрытый) путь в Проводнике Windows, не работает .. ни если я в командной строке не напишу «больше <длинный путь»> ... Путь: \ \? \ UNC \ xx.xxxxxxx.xxx \ XXXXXXXXXX \ ххх \ хххххй \ xx_xxxx \ хй \ XXXXXXX \ хххй \ xxxxxx.xxxxxxxx \ 20160204_150537_251895 \ xxxxxxxx_xxxx \ xxx2x2150_xx-xxx687_20131010_103748 \ XXXXXXXX \ xxx_xxx_xx_xx_2072212_xx_xxx_13411218_xx_xxx_14_1_xxxxxxx2_xxx_2x_xx_xxxx_xxx_xxxxxxx_2014542x.csv – graN

+1

Нет, исследователь не поддерживает длинные пути к файлам, а также большинство встроенных команд интерпретатора команд. Но он должен работать в вашем приложении, если вы используете Unicode API. (Одна странность заключается в том, что командный интерпретатор принимает синтаксис длинного пути для локальных дисков, если этот путь не слишком длинный, но он не принимает синтаксис длинного пути для путей UNC вообще. Я не уверен в значение этого.) –

ответ

0

Благодаря Гарри Джонстон, как итог того, как я решил мою проблему:

  • Проводник Windows не поддерживает то \\?\UNC\.. синтаксис.
  • Использование \\?\UNC\server\folder\.. вместе с Python 3.4 и shutil.copy2() работает отлично. (Который я предполагаю, использует упомянутый API Unicode из комментариев выше)

при представлении пользователю путь к папке, я удалить ?\UNC\ и оставить их с помощью простого \\server\path\.. пути .. (что они, если они хотят, копировать вставьте в проводник Windows и откройте каталог.