-1

特定のディレクトリリスト/パスの一部を分割できるようにする必要があるインスタンスを見つけました。この場合、パス"C:\Program Files(x86)\MyApp\Data"または "があり、将来の処理に使用できるように、C:\Program Files\MyApp\Data\myfile.txt"前にすべてを削除したいと思います。\MyApp\Data\

次のようなことで各ディレクトリを分割し、そこから再構築することもできますが、不要なパス情報を分割して、関連する文字列のみを保持できるようにしたいと思います。

string mypath = @"C:\Program Files(x86)\MyApp\Data";
string[] directories = mypath.Split(Path.DirectorySeparatorChar); 
4

2 に答える 2

1

MyApp \ Dataで分割し、最初のエントリを削除するだけです。

     string mypath = @"C:\Program Files(x86)\MyApp\Data";
     string[] directories = mypath.Split(new string[] {@"\MyApp\Data"},  StringSplitOptions.RemoveEmptyEntries);

     string mySavePath = mypath.Remove(0, directories[0].Length); 
     Console.WriteLine(mySavePath);
于 2013-01-08T23:59:41.783 に答える
1

目的の部分が始まる位置から部分文字列を抽出するだけです。

string s1 = @"C:\Program Files(x86)\MyApp\Data";
string s2 = @"\MyApp\Data\";

int index = s1.IndexOf(s2);
if ( index >= 0 )
{
    string end = s1.Substring(index);
    string beg = s1.Substring(0, index);
}

\ただし、両方の文字列の末尾に記号があるかどうかを考慮してください。

int index = s1.IndexOf(s2.TrimEnd('\\'));
于 2013-01-09T00:00:38.077 に答える