の文字列値があり/Images/She.jpg
ます。/images/
ieの後の部分だけが欲しいShe.jpg
。その部分を文字列に抽出する方法は?
質問する
8510 次
6 に答える
5
パスを使用している場合は、他の回答を使用する必要があります。作業しているプレーン文字列のみの場合は、次のコードを使用できます。
string filePath = "/Images/She.jpg";
string fileName = filePath.Substring(filePath.LastIndexOf("/") + 1);
于 2013-08-16T15:36:42.250 に答える
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);
于 2013-08-16T15:38:03.563 に答える
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
于 2013-08-16T18:43:38.507 に答える
0
ファイル名の後のクエリ パラメータなど、パスに複雑すぎるものがない限り、これは機能します。
Path.GetFileName("/Images/She.jpg")
于 2013-08-16T15:33:18.183 に答える
-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);
}
これは、文字列の最後の文字から「/」に到達するまで逆方向に動作します。次に、「/」の後のすべての文字を合計して返します。
于 2013-08-16T15:38:55.770 に答える