我用它来创建一个新文件夹
System.IO.Directory.CreateDirectory(@" + somevariable);
问题是,当我在文本框中输入文件夹c:\ newfolder \ newfolder并尝试在控制器中接收到值时,它将替换为双斜杠(\)c:\\newfolder\\newfolder
。我如何阻止\引用进入路径
其次,string.replace也无法用\\
string strText = OrganMeta.vcr_MetaValue;
string gf = strText.Replace("\\", @"\");
答案 0 :(得分:2)
“\\”相当于一个字符的字符串,即反斜杠。 @“\”也相当于一个字符,一个反斜杠。
所以你的Replace方法正在用一种不同的形式替换一种反斜杠形式。
试试这个:
string gf = strText.Replace( @"\\", @"\" );
OR
string gf = strText.Replace( "\\\\", "\\" );
就文件夹而言,Andy是对的,它会在IDE中显示双反斜杠,实际上字符串中只有一个。调用Directory.CreateDirectory()时是否有错误?或者是创建文件夹?
答案 1 :(得分:1)
你确定用\\取而代之吗?如果将鼠标悬停在变量上,它将显示为\\,其中应该有一个\但如果您在文本可视化工具中查看它,它将正确显示。
不确定你的意思是string.replace不起作用......?你能给出一个不起作用的代码的例子吗?
答案 2 :(得分:0)
表单提交和控制器操作之间的斜杠不会加倍。
您更有可能在调试器或其他显示两个斜杠的上下文中查看结果,以便区分转义字符(\ n)和文字斜杠()。
将字符串写入调试窗口以验证这一点。
System.Diagnostics.Debug.WriteLine("SomeText");