路上的非法人物

时间:2010-07-23 07:04:46

标签: c#

我想找到位于

的文件
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); 

我在路上得到非法角色。

有什么问题?文件存在且路径正确。在这条道路上有什么不合法的?

任何帮助将不胜感激。

6 个答案:

答案 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”