1

私は動的に画像のサイズを変更しています:

ImageJob i = new ImageJob(file, "~/eventimages/<guid>_<filename:A-Za-z0-9>.<ext>", 
    new ResizeSettings("width=200&height=133&format=jpg&crop=auto"));
i.Build();

画像の相対 URL を DB に保存しようとしています。i.FinalPathプロパティは私に与えます:

C:\inetpub\wwwroot\Church\eventimages\56b640bff5ba43e8aa161fff775c5f97_scenery.jpg

画像ファイル名だけを取得するにはどうすればよいですか - これを解析する最良の方法は?

必要な文字列: /eventimages/56b640bff5ba43e8aa161fff775c5f97_scenery.jpg

4

3 に答える 3

2

以下のようなもの、

var sitePath = MapPath(@"~");
var relativePath= i.FinalPath.Replace(sitePath, "~");
于 2012-05-22T03:59:10.810 に答える
2

正規表現を使用するだけ

Regex.Match

あなたのパターンを作り、望む価値を引き出す

string input = "C:\\inetpub\\wwwroot\\Church\\eventimages\\56b640bff5ba43e8aa161fff775c5f97_scenery.jpg";
Match match = Regex.Match(input, @"^C:\\[A-Za-z0-9_]+\\[A-Za-z0-9_]+\\[A-Za-z0-9_]+\\([A-Za-z0-9_]+\\[A-Za-z0-9_]+\.jpg)$", RegexOptions.IgnoreCase);
if (match.Success)
{
    // Finally, we get the Group value and display it.
    string path = match.Groups[1].Value.Replace("\\", "/");
}
于 2012-05-22T03:51:50.907 に答える
0

ユーティリティメソッドで使用するものは次のとおりです。

Uri uri1 = new Uri(i.FinalPath);
Uri uri2 = new Uri(HttpContext.Current.Server.MapPath("/"));
Uri relativeUri = uri2.MakeRelativeUri(uri1); 

(他の誰かから盗まれた...誰だか思い出せないが、ありがとう)

于 2013-01-12T22:25:50.987 に答える