C# 路径中的非法字符
我正在尝试获取位于中的文件C# 路径中的非法字符,c#,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 =
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);
我在路径中得到非法字符
怎么了?文件存在且路径正确。在这条路上有什么是非法的
任何帮助都将不胜感激。您的路径包括开头和结尾的“删除引号,一切都会好起来的。”
在VS Debugger中看到的开头和结尾的\“告诉我们引号在字符串中。字符串被双引号包围。是的,这不是路径中的有效字符 您可能应该从源头上解决这个问题,但您可以通过以下方法将其去除:
path = path.Replace("\"", "");
字符串的开头和结尾似乎都嵌入了引号(
“
)。这些引号不是必需的,而且是路径中的非法字符。如何使用路径初始化字符串
这可以从调试器可视化工具中看到,当字符串以“\”
开头,以\”
结尾时,它表明引号是字符串的一部分,而不应该是
您可以做两件事-一个常规转义字符串(使用\
)或一个(以@
开头):
或:
我通常会这样进入这条路
FileInfo fi = new FileInfo(@"C:\Program Files (x86)\test software\myapp\demo.exe");
是否在字符串开头注册了@?;-)请尝试以下操作:
string path = @"C:\Program Files (x86)\test software\myapp\demo.exe";
试一试
“C:/ProgramFiles(x86)/test software/myapp/demo.exe”我已经尝试了
FileInfo fi=newfileinfo(@Path);
但我仍然遇到同样的问题。我不能像你说的那样做,因为我从其他地方获取路径并将其存储在字符串中。@ke3pup请检查这个作为答案,因为它解决了你的问题。这是在运行时用双引号内双引号保存文件的完美原因。谢谢你的解决方案。
FileInfo fi = new FileInfo(@"C:\Program Files (x86)\test software\myapp\demo.exe");
string path = @"C:\Program Files (x86)\test software\myapp\demo.exe";