Chemin d'accés supérieur à 260 caractères

gloups8288 Messages postés 7 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 13 août 2008 - 23 mai 2008 à 09:53
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 24 mai 2008 à 00:15
bonjour,

J'ai un problème sur la copie de fichiers et aussi de dossiers, lorsque le path de mon fichiers (ou dossier) à copier est supérieur à 260 caractères et que j'utilise File.MoveTo, une exception est levée. Je ne sais vrément pas quoi faire pour éviter cela, avez-vous une idée???
 

3 réponses

gloups8288 Messages postés 7 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 13 août 2008
23 mai 2008 à 10:55
En fait, j'aimerai avant de copier le fichier, le déplacer pour pouvoir le copier 
exemple:

path du fichier à copier (supérieur à 260caractères):

- //serveurX/..............230caractères..../toto/toto1/toto2/toto3/MonFichier/

path aprés déplacement(inférieur à 260 caractères):

-serveurX/..........230caractères........../toto/MonFichier/

Mais bon ca équivaut à une copie est le problème est le même.
0
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 8
23 mai 2008 à 11:48
Salut,

Tu ne peux pas copier ton fichier dans un répertoire temporaire au nom moins long, puis le déplacer dans le répertoire final après?

Sinon j'avais vu qu'il était possible d'utiliser des chemins complets de plus de 260 caractères, mais il faut passer par l'API windows.

Ici tu as un exemple pour créer un fichier dont le chemin complet fait plus de 260 caractères (pas testé).

http://www.codeproject.com/KB/files/LongFileNames.aspx

En gros, il faut appeler la fonction correspondante (create, et sans doute move/copy) de l'API windows avec une chaine unicode (regarde leur code).

J'espère que ça peut t'aider.  Si quelqu'un connaît une meilleur méthode je suis intéressé :)
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
24 mai 2008 à 00:15
Salut,

Les chemins longs ne sont effectivement pas encore supportés dans la BCL .NET (je ne crois pas que ça soit le cas avec .NET 2.0 SP1, et je ne sais pas pour .NET 3.5 SP1).
Voir http://blogs.msdn.com/bclteam/archive/2007/02/13/long-paths-in-net-part-1-of-3-kim-hamilton.aspx et http://blogs.msdn.com/bclteam/archive/2007/03/26/long-paths-in-net-part-2-of-3-long-path-workarounds-kim-hamilton.aspx pour quelques informations.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous