J’ai la commande suivante:
ssortingng reportedContentFolderPath = Path.Combine(contentFolder.FullName.ToSsortingng(), @"\ReportedContent\");
Lorsque je regarde dans le débogueur, je peux voir ce qui suit:
contentFolder.FullName = "E:\\"
toutefois
reportedContentFolderPath = "\\ReportedContent\\"
Pourquoi Path.Combine
coupe-t-il le E: \?
Vous avez une barre oblique sur @"\ReportedContent\"
. Vous ne voulez pas cela (ou le dernier, je suppose) – essayez simplement:
ssortingng reportedContentFolderPath = Path.Combine(contentFolder.FullName.ToSsortingng(), "ReportedContent");
De la documentation :
Si
path2
n’inclut pas de racine (par exemple, sipath2
ne commence pas par un caractère séparateur ou une spécification de lecteur), le résultat est une concaténation des deux chemins, avec un caractère séparateur intermédiaire. Sipath2
inclut une racine,path2
est renvoyé.
Dans votre cas, path2
contenait une racine, elle a donc été renvoyée sans path2
.
Cela est expliqué dans la documentation de la méthode:
Si chemin2 n’inclut pas de racine (par exemple, si chemin2 ne commence pas par un caractère séparateur ou une spécification de lecteur), le résultat est une concaténation des deux chemins, avec un caractère séparateur intermédiaire. Si chemin2 inclut une racine, chemin2 est renvoyé.
Je vous recommande de tout lire pour comprendre le fonctionnement de toutes les combinaisons possibles: Méthode Path.Combine
Path.Combine renverra le deuxième argument s’il commence par un caractère de séparation ( \
).
Je parierais qu’en spécifiant la barre oblique comme préfixe dans la deuxième chaîne, la méthode Combine assume le lecteur actuel. Essayez de supprimer la barre oblique.
Il semble que Path.Combine pense que les deux barres obliques E:\\
référence à un chemin d’access UNC, et qu’un chemin d’access UNC ne doit pas être préfixé par une lettre de lecteur. Changez le contentFolder en E:\
et cela devrait fonctionner.
De MSDN (c’est moi qui souligne):
public static ssortingng Combine(ssortingng path1, ssortingng path2)
[…]
Valeur de retour
Type: System.Ssortingng Les chemins combinés. Si l’un des chemins spécifiés est une chaîne de longueur nulle, cette méthode renvoie l’autre chemin. Si
path2
contient un chemin absolu, cette méthode renvoiepath2
.
@"\ReportedContent\"
est un chemin absolu car il commence par une barre oblique inverse.