我想找到位于
的文件C:\Program Files (x86)\test software\myapp\demo.exe
在VS调试器中,我将路径视为:
"\"C:\\\Program Files (x86)\\\test software\\\myapp\\\demo.exe\""
当我将其打印出来时,我会在控制台中看到:
"C:\Program Files (x86)\test software\myapp\demo.exe"
但是当我尝试像
这样的东西时FileInfo fi = new FileInfo(PathMentionedAbove);
我在路上得到非法角色。
有什么问题?文件存在且路径正确。在这条道路上有什么不合法的?
任何帮助将不胜感激。
答案 0 :(得分:19)
你的路径包括“在开始和结束时。删除引号,它就没问题。
在VS Debugger中看到的开头和结尾是告诉我们引号字面意思在字符串中。
答案 1 :(得分:10)
试试这个:
string path = @"C:\Program Files (x86)\test software\myapp\demo.exe";
答案 2 :(得分:7)
字符串被双引号括起来。是的,这不是路径中的有效字符。
你应该在源头解决它,但你可以用以下方法解决它们:
path = path.Replace("\"", "");
答案 3 :(得分:6)
您的字符串似乎在开头和结尾嵌入了引号("
)。这些不是必需的,并且是路径中的非法字符。你是如何用路径初始化字符串的?
这可以从调试器可视化工具中看到,因为字符串以"\"
开头并以\""
结尾,它表示引号是字符串的一部分,当它们不应该是。< / p>
您可以做两件事 - 常规转义字符串(使用\
)或verbatim string literal(以@
开头):
string str = "C:\\Program Files (x86)\\test software\\myapp\\demo.exe";
或者:
string verbatim = @"C:\Program Files (x86)\test software\myapp\demo.exe";
答案 4 :(得分:0)
我通常会像这样进入这条路....
FileInfo fi = new FileInfo(@"C:\Program Files (x86)\test software\myapp\demo.exe");
你是否在字符串的开头注册了@? ; - )
答案 5 :(得分:0)
尝试
“C:/ Program Files(x86)/ test software / myapp / demo.exe”