0

私はパスを持っています:

 "C:\\Users\\dev\\Test\\TestResults\\Config\\Report.xml"

このパスに「TestResults」フォルダーがあるかどうかを確認する必要があります。ある場合は、これを削除して新しいパスを次のように返す必要があります

"C:\\Users\\dev\\Test\\Config\\Report.xml"

トリムとスプリットを使用してこれを達成できることを私は知っています。しかし、正しい選択を確実に行うためです。これを達成する最善の方法は何ですか?

どんな助けも本当に感謝しています。

4

2 に答える 2

1

この場合、文字列置換メソッドは使用しません。なんで?

例:

string path = "C:\\Users1\\Users2\\Users122\\Users13\\Users133\\filename.xml";
path = path.Replace("\\TestResults", string.Empty);
// you will get "C:\Users222333\filename.xml"

それはあなたが期待したものではありません。

これを修正する方法

path = string.Join(Path.DirectorySeparatorChar.ToString(),      
           path.Split(Path.DirectorySeparatorChar).Where(x=> x!="Users1").ToArray()));

//C:\Users2\Users122\Users13\Users133\filename.xml
于 2013-08-24T12:18:43.140 に答える
1

String.Replace次のような方法を使用できます。

現在の文字列内の指定された Unicode 文字または文字列のすべての出現箇所が別の指定された Unicode 文字または文字列に置き換えられた新しい文字列を返します。

string path = "C:\\Users\\dev\\Test\\TestResults\\Config\\Report.xml";
path = path.Replace("\\TestResults", string.Empty);
Console.WriteLine(path);

出力は次のようになります。

C:\Users\dev\Test\Config\Report.xml

ここにデモがあります。

于 2013-08-24T11:39:46.760 に答える