Por que não é este substituir de barra invertida trabalhando?

votos
2

Então eu preciso para remover barras invertidas escapou de uma string (no meu caso, um caminho simplesmente como C: \ Arquivos de Programas (x86) \ Microsoft Office \ Office14 \ WINWORD.EXE \).

Para substituir Eu tentei o seguinte:

String openWith = C:\\Program Files (x86)\\Microsoft Office\\Office14\\WINWORD.EXE;

string newString = openWith.Replace(@\\, @\);

openWith = openWith.Replace(@\\, @\);

openWith = Regex.Replace(openWith,\\\\,\\);

Mas nenhum desses trabalhos !! Ninguém seria capaz de me explicar por que isso pode ser?

Agradeço antecipadamente!

Publicado 28/08/2012 em 21:15
fonte usuário
Em outras línguas...                            


2 respostas

votos
5

A seqüência não contém barras invertidas duplas.

A primeira barra invertida "C:\\"é um caractere de escape que é interpretado pelo compilador C #. Em tempo de execução no entanto a string contém apenas barras invertidas simples. Você pode provar isso para si mesmo, mostrando o valor da string:

String openWith = "C:\\Program Files (x86)\\Microsoft Office\\Office14\\WINWORD.EXE";
Console.WriteLine(openWith);

Resultado:

C: \ Arquivos de Programas (x86) \ Microsoft Office \ Office14 \ WINWORD.EXE

Note-se que existem apenas barras invertidas simples na saída.

Veja trabalhando on-line: ideone

Respondeu 28/08/2012 em 21:16
fonte usuário

votos
0

Você não precisa remover volta barra do caminho que você colocar na pergunta.

O caminho com duas barras invertidas \\é a única possível a visualização de um válido caminho IO no sistema operacional Windows.

Respondeu 28/08/2012 em 21:17
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more