2008-10-29 20 views
3

Qu'est-ce que cela signifie exactement? Je fais quelque chose comme ceci:System.IO.IOException: Le lien symbolique ne peut pas être suivi car son type est désactivé

File.Copy(@"\\foo\bar\baz.txt", @"c:\test\baz.txt"); 

MSDN ne décrit pas cette exception, sauf en termes généraux, et googler autour des tables donne juste des codes d'erreur.

J'ai confirmé que le fichier source existe, et je suis sûr à 99% que j'ai les autorisations pour copier le fichier à l'emplacement de destination.

+0

Quel est votre dossier de destination? Est-ce un dossier réel sur le système de fichiers, ou un lien symbolique (jonction en NTFS) vers un autre emplacement? –

+0

Le dossier de destination est un dossier local. J'ai découvert que le fichier source est un lien symbolique vers un autre emplacement sur le même système (\\ foo). –

Répondre

2

Consultez cet article pour obtenir des informations sur l'utilisation de liens symboliques dans .Net: "Manipulating NTFS Junction Points in .NET".

Selon cet article:

« En particulier, les bibliothèques .NET ne comprennent pas toutes les fonctionnalités pour la création ou l'interrogation des propriétés de Points de jonction »

Mais il existe une méthode comment obtenir réellement la cible du lien symbolique, et alors vous serez capable d'utiliser File.Copy avec lui.

0

Vous obtiendrez cette erreur si le fichier de destination existe déjà. Je voudrais également confirmer que le compte sous lequel vous exécutez le code a accès à UNC \ foo \ bar \ baz.txt

1

Par défaut, l'évaluation locale des liens symboliques distants est désactivée.

Vous pouvez utiliser fsutil pour modifier ce paramètre ou vous pouvez vous plonger dans du code non géré et résoudre le lien vous-même.

Questions connexes