我想找到一个位于的文件
C:\Program Files (x86)\test software\myapp\demo.exe
Run Code Online (Sandbox Code Playgroud)
在VS调试器中,我将路径视为:
"\"C:\\\Program Files (x86)\\\test software\\\myapp\\\demo.exe\""
Run Code Online (Sandbox Code Playgroud)
当我打印出来时,我在控制台中看到:
"C:\Program Files (x86)\test software\myapp\demo.exe"
Run Code Online (Sandbox Code Playgroud)
但是当我尝试类似的东西时
FileInfo fi = new FileInfo(PathMentionedAbove);
Run Code Online (Sandbox Code Playgroud)
我在路上得到了非法角色.
怎么了?文件存在且路径正确.在这条道路上有什么不合法的?
任何帮助,将不胜感激.
Mar*_*sen 10
试试这个:
string path = @"C:\Program Files (x86)\test software\myapp\demo.exe";
Run Code Online (Sandbox Code Playgroud)
该字符串被双引号括起来.是的,这不是路径中的有效字符.
您可能应该在源头处理它,但您可以使用以下方法将其删除:
path = path.Replace("\"", "");
Run Code Online (Sandbox Code Playgroud)
您似乎"在字符串的开始和结尾处都带有引号()。这些不是必需的,并且是路径中的非法字符。您如何使用路径初始化字符串?
从调试器可视化器可以看到这一点,因为字符串以开头"\"和结尾\"",表明引号是字符串的一部分,而引号不应该是引号。
您可以做两件事-常规的转义字符串(使用\)或逐字字符串文字(以开头@):
string str = "C:\\Program Files (x86)\\test software\\myapp\\demo.exe";
Run Code Online (Sandbox Code Playgroud)
要么:
string verbatim = @"C:\Program Files (x86)\test software\myapp\demo.exe";
Run Code Online (Sandbox Code Playgroud)