Windows: comment déplacer un fichier avec un long chemin vers la corbeille?

J’utilise Python mais je pense que le même problème existe en C #.

Je voudrais pouvoir supporter des chemins étendus (chemins avec len> 260 qui sont représentés comme //? / C: / blah / blah). Il semble que le moyen standard de déplacer les fichiers vers la corbeille soit via SHFileOperationW ou SHFileOperation.

Dans python, la bibliothèque utile xplatform, move2trash, utilise SHFileOperationW. Quelques articles sur C # disent utiliser la même chose.

Le problème avec SHFileOperationW est qu’il ne prend pas en charge les chemins étendus. Ceci est une limitation générale des outils SH.

Quelqu’un at-il des astuces pour gérer la corbeille et les chemins étendus?

liens de référence: version C #, version Python

Une recherche rapide de “PathTooLongException” en révèle quelques-unes si vous souhaitez examiner certaines solutions C #. Il se peut que vous puissiez récupérer le “nom abrégé” et l’utiliser pour le déplacer. En outre, vous pouvez regarder et voir comment ils ont géré cette bibliothèque C # avec une solution de contournement à http://bcl.codeplex.com/wikipage?title=Long%20Path

Vous ne le faites pas. Il n’est pas possible de placer un fichier dans la corbeille dont le chemin dépasse 259 caractères.