comment gérer les espaces dans le chemin d'accès du fichier si le dossier contient l'espace?
public static void launchProcess(string processName, string arguments, out string output)
{
Process p = new Process
{
StartInfo = { UseShellExecute = false, RedirectStandardOutput = true, FileName = processName, Arguments = arguments }
};
p.Start();
output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
}
Et si mes arguments contient les noms de fichiers comme:
D:\Visual Studio Projects\ProjectOnTFS\ProjectOnTFS
Puis j'obtiens l'erreur:
Quelle est l'erreur que vous appelez "l'erreur?"
Utilisez des guillemets doubles comme
Utilisez des guillemets doubles comme
"D:\Visual Studio Projects\ProjectOnTFS\ProjectOnTFS"
pour les arguments.
OriginalL'auteur vakas | 2011-06-29
Vous devez vous connecter pour publier un commentaire.
Il faudra doubles guillemets, mais sera aussi probablement besoin d'un @ pour traiter la chaîne de mot-pour-mot (verbatim de la chaîne) c'est à dire le "\" a une signification spéciale dans la chaîne de caractères par exemple, "\t " signifie un onglet, de sorte que nous voulons ignorer l' \
Ainsi, non seulement les guillemets, mais aussi @
Bon point, grâce Almo j'ai oublié de regarder plus loin que ça.
Retiré le projet initial de la réponse, comme c'est déroutant à la fois.
OriginalL'auteur Alex KeySmith
J'utilise la suite dans la plupart de mes applications (si nécessaire) pour ajouter des guillemets au début et à la fin d'une chaîne si il y a des espaces blancs.
Exemples..
Retourne
"D:\Visual Studio Projects\ProjectOnTFS\ProjectOnTFS"
Retourne
C:\Test
Retourne
"C:\Test Test\Wrap"
Renvoie une chaîne vide
Renvoie une chaîne vide
MODIFIER
Que par suggestion, a changé le nom de la fonction, et a également ajouté une référence null vérifier.
Ajout d'une vérification pour voir si des guillemets au début et à la fin de la chaîne afin de ne pas dupliquer.
Changé la chaîne de la fonction de contrôle de
IsNullOrWhiteSpace
à vérifier blanc ainsi de l'espace vide ou nulle, si oui, retourne une chaîne vide.Aussi, ne devrait-elle pas également de vérifier si la chaîne est déjà enveloppé dans des citations? L'appeler plusieurs fois sur son propre résultat doit produire la même chaîne à chaque fois.
OriginalL'auteur Master Mick
Je me rends compte que c'est un vieux thread mais pour les gens qui voient cela d'après moi, vous pouvez aussi faire:
En s'échappant de l'arrière des barres obliques vous n'avez pas à utiliser le symbole@. Juste une autre alternative.
@
au début de la chaîne, ce qui indique une véritable chaîne. Sinon, vous trouverez vous-même de perdre du temps en ajoutant des barres obliques inverses de tous les jours.OriginalL'auteur Greg H-R