2010-07-01 125 views
0

我使用它来创建一个新的文件夹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("\\", @"\"); 

回答

2

“\\”相当于一个字符的字符串,反斜杠。 @“\”也相当于单个字符,反斜杠。

所以你的替换方法是用一种不同的形式替换一种形式的反斜杠。

试试这个:

string gf = strText.Replace(@"\\", @"\"); 

OR

string gf = strText.Replace("\\\\", "\\"); 

尽可能的文件夹的事情会发生,安迪是正确的,它会显示在IDE双反斜线的时候,其实只是有一个在字符串中。当Directory.CreateDirectory()被调用时是否有错误?或者是创建的文件夹?

1

替换\工作确定它与\\代替它?如果将鼠标悬停在变量上,它将显示\\应该有一个\\,但如果您在文本可视化工具中查看它,它将显示正确。

不确定你的意思是什么string.replace不工作......?你能举一个没有用的代码的例子吗?

+0

的事情是,如果我硬线C:\ newfolder \ newfolder它的工作原理,但如果我不那么它不工作,它显示\\字符串中 – maztt 2010-07-01 17:33:23

+0

我创建了一个测试MVC2使用单个文本框和接收FormCollection的控制器进行项目。如果我然后将提交的文本的值放入ViewData中,并在View中显示它是正确的,那么我还包括字符串中'\'字符数的计数,它是正确的。你可以在一个新的MVC项目中尝试同样的事情,看看它是否有效? 您的替换是正确的,它会查找\\并用\替换。 – 2010-07-01 18:21:10

+0

Doh!干杯戴夫,错过了它没有@之前\\。 – 2010-07-01 18:48:37

0

斜线在表单提交和控制器操作之间不会加倍。

在调试器或另一个显示两个斜线的上下文中,您可能更容易看到结果,以便区分转义字符(\ n)和文字斜线()。

将该字符串写入调试窗口来验证。

System.Diagnostics.Debug.WriteLine("SomeText");