Windows: как я могу переместить файл с длинным путем в корзину?

Я использую Python, но я думаю, что та же проблема существует в C#.

Я хотел бы иметь возможность поддерживать расширенные пути (пути с len > 260, которые представлены как //?/ C:/blah/blah). Похоже, что стандартный способ перемещения файлов в корзину - через SHFileOperationW или SHFileOperation.

В python полезная библиотека xplatform, move2trash, использует SHFileOperationW. В нескольких статьях на C# говорится, что нужно использовать одно и то же.

Проблема с SHFileOperationW заключается в том, что он не поддерживает расширенные пути. Это общее ограничение инструментов SH.

У кого-нибудь есть хитрости для работы с корзиной и расширенными путями?

ссылки: версия C#, версия Python

2 ответа

Вы не Невозможно поместить файл в корзину, путь которого длиннее 259 символов.

Быстрый поиск "PathTooLongException" вызывает довольно много дискуссий о переполнении стека, если вы хотите взглянуть на некоторые решения C#. Возможно, вы сможете получить "короткое имя" и использовать его для его перемещения. Кроме того, вы можете посмотреть и посмотреть, как они справились с этим в этой библиотеке C# с помощью обходного пути по адресу http://bcl.codeplex.com/wikipage?title=Long%20Path

Другие вопросы по тегам