2013-03-21 2 views
3

мне нужен URL, который создается путем нахождения файла, может получить URL этого файла, и я получаю это:Заменить метод не работает C#? Что здесь не так

"C:\\dev\\vsprojects\\MvcApplication4\\MvcApplication4\\hard.txt" 

Все работает хорошо, и проблема возникает, когда я заменяю \\\ но это не сработает! Вот код:

string ruta = ""; 

foreach (var readText in 
    Directory.GetFiles(@"C:\dev\vsprojects\MvcApplication4\MvcApplication4", 
    "stringCon.txt", SearchOption.AllDirectories)) 
{ 
    ruta = readText; 
} 

ruta = ruta.Replace(@"\\", @"\"); 
//in debugger mode says ruta parameter still having 
//the \\ and i cant get the content of the txt file 
TextReader ReadTXT_file = new StreamReader(ruta); 
//and here says that StringConexion is null, why?? 
string StringConexion = ReadTXT_file.ReadLine(); 

ReadTXT_file.Close(); 
+0

возможно дубликат [asp.net JSon сериализатором добавление обратной косой черты «\» в моих свойств] (http://stackoverflow.com/questions/7327048/asp-net-json-serializer-adding-backslash-to-my-properties/7327145#7327145) – Joshua

+1

Я не понимаю, почему вы пытаетесь заменить двойную обратную косую черту, поскольку она не должно быть в вашей строке. Я также не понимаю, что вы пытаетесь выполнить с помощью своего «foreach». В режиме отладки он отображает обратную косую черту как правильно экранированную обратную косую черту. И 'StringConexion' является' null' в данной точке, потому что вы присваиваете ему значение в следующей строке, поэтому какое значение вы ожидаете от него. – mgttlinger

+0

спасибо @mgttlinger, я сделал это, и вы, где rigth – 2013-03-21 15:37:39

ответ

3

Ну не совсем уверен, что вы пытаетесь сделать, однако, ваш «Заменить» код вне цикла. Вам это нужно внутри, иначе вы замените только текст последнего файла.

public class e{ 


     string ruta = ""; 

       foreach(var readText in Directory.GetFiles(@"C:\dev\vsprojects\MvcApplication4\MvcApplication4", "stringCon.txt", SearchOption.AllDirectories)) { 

        ruta = readText; 
        ruta = ruta.Replace(@"\\", @"\"); 
    //in debugger mode says ruta parameter still having the \\ and i cant get the content of the txt file 
       TextReader ReadTXT_file = new StreamReader(ruta); 
    //and here says that StringConexion is null, why?? 
       string StringConexion = ReadTXT_file.ReadLine();// 

       ReadTXT_file.Close(); 

       } 



} 

EDIT

Просто понял, тоже это не будет даже скомпилировать. И вы класс называется «e». Я немного напуган все это, но тем не менее я предлагаю этот формат для создания классов/методов ...

public class MyProperClassName 
{ 
    public void MyMethodName() 
    { 
     // do your file text operations here 
    } 
} 
Смежные вопросы