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

Signaler
Messages postés
7
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
13 août 2008
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
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

Messages postés
7
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
13 août 2008

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.
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
8
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é :)
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
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
*/