Système.ArgumentException: caractères Illégaux dans le chemin. erreur
Je suis ArgumentException à partir du code suivant:
string strPath=@"C:\somename.xls";
startPath=System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
filePath = System.IO.Path.Combine(startPath, strPath);
J'ai trouvé ce code sur un Débordement de Pile.
Lien:
//C#:protégé contre la Copie de la feuille de calcul à un autre fichier excel
Je ne sais pas exactement ce que c'est. S'il vous plaît dites-moi ce que c'est. Ce code je suis en train de construire dans un fichier exe.
Enfin, j'ai besoin de Copier une feuille de calcul à un autre fichier.
Quel mal ai-je fait? Je le déploiement de ce serveur.
- C# specs littéraux de Chaîne. Par ailleurs, pourquoi avez-vous initialiser le string filePath deux fois?
- Vous affectez une chaîne littérale de
filePath
, puis l'écraser avec le résultat dePath.Combine
. Où obtenez-vousstrPath
? - Aussi, lorsque, sur un Débordement de Pile avez-vous obtenir ce code? Pourriez-vous comme à la question/réponse? Qui pourrait nous aider à comprendre le contexte un peu mieux.
- Désolé pour la une grosse erreur. Editted mon post à nouveau. s'il vous plaît vérifier.
- aussi, essayez d'éviter de libre-main de la copie de votre code. si vous faites une erreur en faisant cela, vous obtenez incorrecte de la rétroaction. essayez d'utiliser le copier/coller
- Merci pour la réponse. "startPath" wil être le chemin de l'exe que vous avez dit, et "strPath" que je passe auront chemin comme "C:\New Folder\aa\bb\cc\somename.exe". Est-ce mal?
- que voulez-vous
filePath
être? - J'ai pensé que c'est un moyen que nous avons pour obtenir le nouveau fichier excel. wat suggérez-vous pour cela? globale de la copie de la feuille de calcul à nouveau fichier. Je veux que ce "stackoverflow.com/questions/15293451/..."
- Je ne suis pas un expert sur des fichiers excel, mais je sais que tous les
System.IO.Path.Combine();
vraiment, c'est la manipulation de la chaîne. Je présume que c'est un chemin où vous souhaitez que le fichier excel doit être créé en. Où est-ce? - J'ai eu ce que je voulais. c'est juste besoin d'être "strPath". le repos n'est pas nécessaire pour moi.
Vous devez vous connecter pour publier un commentaire.
ce que le code s'affiche à faire, est-il obtient votre répertoire de travail(où le
exe
associée à votre code est), et il se combine avec"C:\\somename.xls"
(qui n'a pas de sens.)Je pense que vous pourriez avoir prévu quelque chose comme
donc, supposons que vous exécutez votre application à partir de
ce que ce code est défini
filePath
àla première chose que j'ai vu était
\
est un caractère spécial, pour déterminer les autres personnages. par exemple'\n'
est un retour à la ligne.'\\'
est la barre oblique inverse.donc, vous voulez échapper à votre
\
avec un autre\
ou en faire une chaîne littérale en mettant un
@
en face d'elle.De votre code devrait être:
Vous avez besoin de double anti-slash.
Deux problèmes avec le code,
Première
\
est un caractère spécial, pour déterminer les autres personnages. par exemple'\n'
est un retour à la ligne.'\\'
est la barre oblique inverse.Deuxième
filePath
contient un chemin d'accès racine,C:\\
.Path.Combine
va juste retournerfilePath
alors, il ne peut pas être combinées.Votre principal problème est dans
startPath
paramètre.Si vous le suivi de votre code, dans
FileName
vous verrez un mauvais caractère de symbole de la sorcière est illégal