0

私は次の種類の文字列を持っています。1つはスラッシュが3つ、もう1つは2つです。

a) filepath = "/F00C/Home/About"

b) filepath = "/Administration/Menus"

私がする必要があるのは、「home」と「administration」の値を取得してtopMenu変数に入れ、「Menus」と「About」の値を取得してこれをsubMenu変数に入れることができる関数です。

私は関数slashes=filePath.Split('/');に精通しています。しかし、私の状況は2種類の変数があるのでそれほど単純ではなく、どちらの場合も最後の2つの単語を取得する必要があります。

複雑にすることなく、Split関数を両方で機能させる簡単な方法はありますか?

4

3 に答える 3

3

このようなものの何が問題になっていますか?

var splits = filePath.Split('/');
var secondLast = splits[splits.Length-2];
var last = splits[splits.Length-1];

備考:

  • 分割配列の長さ(2以上である必要があります)のチェックがありません。
  • また、このコードはスラッシュ('/')でのみ機能します。バックスラッシュとフォワードスラッシュの両方の区切り文字をサポートするには、@Saeedの回答をご覧ください。
于 2012-04-30T16:46:18.077 に答える
0
var items = filePath.Split('/');
first = items[items.Length - 2];
second = items[items.Length - 1];

また、これが実際のパスである場合は、Path:を使用できます。

var dir = Path.GetDirectoryName(filePath);
dir  = Path.GetFileName(dir);
var file = Path.GetFileName(filePath);

編集: digEmAllで説明した方法で、パスバージョンを編集しました。

于 2012-04-30T16:45:38.710 に答える
0

私は何かが足りないのですか、それともあなたが欲しいだけですか?

var split = filepath.Split('/');
var last = split[split.Length -1];
var prev = split[split.Length -2];
于 2012-04-30T16:46:43.997 に答える