asp.net mvc文件路径问题

时间:2010-07-01 16:59:29

标签: asp.net asp.net-mvc

我用它来创建一个新文件夹

 System.IO.Directory.CreateDirectory(@" + somevariable); 

问题是,当我在文本框中输入文件夹c:\ newfolder \ newfolder并尝试在控制器中接收到值时,它将替换为双斜杠(\)c:\\newfolder\\newfolder。我如何阻止\引用进入路径

其次,string.replace也无法用\\

替换\
  string strText = OrganMeta.vcr_MetaValue;  
  string gf = strText.Replace("\\", @"\");

3 个答案:

答案 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");