0

我有以下类型的字符串。一个带三个斜线,一个带两个:

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

b) filepath = "/Administration/Menus"

我需要做的是一个函数,它允许我获取“home”和“administration”的值并将其放入 topMenu 变量并获取“Menus”和“About”的值并将其放入 subMenu 变量中。

我熟悉函数 slashes = filePath.Split('/'); 但我的情况并不是那么简单,因为有两种类型的变量,在这两种情况下我只需要得到最后两个词。

有没有一种简单的方法可以让 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 回答