私はあなたがデバッガーを見ると思います、そしてそれがあなたがこの振る舞いをする理由です...
それぞれ\\
が実際には1つ\
です。そのため、\\\\
置き換えられます\\
(2つの "\"が1に置き換えられます)。\\
実際には1つの "\"であるため、置き換え後も "\"を取得します(2つの "\"文字列が見つからなかったため)。
その理由は、\文字が特殊文字をマークしているためです。たとえば、タブ(\ t)文字が必要な場合は、"\t"
改行の文字列があります"\r\n"
。したがって、実際に文字列に「\」文字を含める場合は、前にもう1つの「\」文字を付けます。"\\"
つまり、デバッガーに「\\ AAA.AA.A.AA \ d $ \ ivr \ vm \ 2012May \ 29 \ 10231_1723221348.vox」と表示されている場合、実際の文字列は「\AAA.AA.A.AA\」です。 d $ \ ivr \ vm \ 2012May \ 29 \ 10231_1723221348.vox "
したがって、fileToConvert.Replace(@"\\",@"\")
次のようになります。
"\AAA.AA.A.AA\d$\ivr\vm\2012May\29\10231_1723221348.vox"
デバッガーに次のように表示されます"\\AAA.AA.A.AA\\d$\\ivr\\vm\\2012May\\29\\10231_1723221348.vox"
結論として:
fileToConvert.Replace(@"\\",@"\")
元の文字列(デバッグで表示されるもの"\\\\AAA.AA.A.AA\\d$\\ivr\\vm\\2012May\\29\\10231_1723221348.vox"
)が実際にあるためでも、何もする必要はありません。"\\AAA.AA.A.AA\d$\ivr\vm\2012May\29\10231_1723221348.vox"