2016-09-13 1 views
0

J'ai un problème assez curieux. J'ai ce code (écrit par quelqu'un d'autre). Il est supposé créer deux dossiers les uns avec les autres en cliquant sur un bouton spécifique. Il utilise ceci:Définition du chemin du dossier

string directoryCrate = "/" + comboIndustry.Text + "/" + comboCustomerName.Text + "/" 

Maintenant, comme vous le voyez, le séparateur pour les dossiers sont "/". Mais plus tard dans le code j'ai besoin d'avoir le chemin complet du dossier qui est c: \ projects et ensuite le chemin vers le nouveau dossier qui est/Industry/Customer/... Donc si je veux obtenir l'adresse dans le presse-papiers ce serait quelque chose comme ceci: C "\ projects/Industrie/client/... et évidemment je ne peux pas ouvrir cette adresse dans l'explorateur! Pour une raison quelconque, la méthode n'acceptera pas" \ "quand j'essaye. . quelqu'un peut-il aider

+0

Avez-vous essayé un String.replace pour remplacer l'avant barres obliques avec des barres obliques –

+0

Qu'est-ce que cela a à voir avec SQL Server? Et pourquoi utilisez-vous '/' au lieu de '\'? Si vous voulez traiter ce texte comme un chemin, utilisez le séparateur approprié. BTW si la raison est "parce que nous avons utilisé la chaîne pour créer des hiérarchies dans la base de données", vous devez le remplacer par le type hiérarchiqueid construit à cet effet. –

+0

Vous devez mettre un signe deux-points (:) après le nom du lecteur et convertir les barres obliques avant en barres obliques (et aussi cette double citation) avant de le placer dans le presse-papier. Comme ceci- C: \ projects \ Industry \ customer \ –

Répondre

0

Vous pouvez utiliser

System.IO.Path.DirectorySeparatorChar 

Pour obtenir la séparation de répertoire standard ombles pour votre système. En outre, si vous essayez de faire remplacer, assurez-vous de lancer la chaîne avec un @ il ne pas analyser les barres obliques inversées ou bien leur échapper comme:

string backslash = @"\"; 
string anotherBackslash = "\\"; 
+0

Cela a fonctionné parfaitement. Merci – Zoe

0

Essayez ceci:.

string path = System.IO.Path.Combine(@"C:\Projects", directoryCrate) 
string fullPath = System.IO.Path.GetFullPath(path) 

ou moissonneuse-batteuse dans une déclaration

string fullPath = System.IO.Path.GetFullPath(System.IO.Path.Combine(@"C:\Projects", directoryCrate)) 

L'un ou l'autre des deux éléments ci-dessus devrait vous donner le chemin complet avec les barres obliques inverses.