我的字符串值为/Images/She.jpg
。我只想要/images/
之后的部分,即She.jpg
。如何将该部分提取为字符串?
答案 0 :(得分:14)
string filename = System.IO.Path.GetFileName("/Images/She.jpg");
答案 1 :(得分:4)
如果您正在使用路径,则应使用其他答案。如果它只是您正在使用的普通字符串,则可以使用以下代码:
string filePath = "/Images/She.jpg";
string fileName = filePath.Substring(filePath.LastIndexOf("/") + 1);
答案 2 :(得分:0)
只要您的路径中没有任何过于复杂的内容,这将有效。查询文件名后的参数。
Path.GetFileName("/Images/She.jpg")
答案 3 :(得分:0)
我喜欢之前发布的GetFileName答案。
或者,您可以使用IndexOf和Substring手动解析字符串。我已经包含了多个变量,因此很容易看到解析字符串的步骤。
var source = "/images/she.jpg";
var key = "/images/";
var target = source.IndexOf(key);
var start = target + key.Length;
var length = source.Length - start;
var result = source.Substring(start, length);
答案 4 :(得分:0)
为了好玩,您还可以将字符串拆分为数组并获取数组中的最后一个元素...
string path = "/Images/She.jpg";
string[] arr = path.Split('/');
string filename = arr[arr.Length - 1];
或者如果你喜欢单线
string path = "/Images/She.jpg";
string filename = path.Split('/').Last();
这将返回
She.jpg
答案 5 :(得分:-1)
好吧,你可以从字符串的末尾向后移动。
private string GetFileName(string path)
{
string filename = null;
for (int i = (path.Length - 1); i > -1; --i)
{
if (path[i].ToString() == "/")
{
for (int x = (i + 1); x < (path.Length); ++x)
{
filename += path[x];
}
break;
}
}
return (filename);
}
这从字符串的最后一个字符向后工作,直到它达到'/'。然后,它将'/'后的所有字符相加并将其返回给您。