2

嘿伙计们,

我有几个图像 url,我从中下载数据并将其保存在 db 中。我(imageurl.Split('/'))[(imageurl.Split('/').Length) - 1];用来创建文件名。

问题是,有些网址包含查询字符串。由于我为他们获得的文件名有模式imgname.img_type_extension?somefield=somevalue

如何从上面的子字符串中获取 filename.extension 离开查询字符串?

感谢您的光临...

4

4 回答 4

4
var path = imageurl.Split('?')[0];
var fileName = Path.GetFileNameWithoutExtension(path);

编辑:对于带有扩展名的文件名,只需使用另一种方法Path

    var path = imageurl.Split('?')[0];
    var fileName = Path.GetFileName(path);
于 2013-06-12T07:49:09.677 回答
3

为什么不让 UriBuilder 为你做解析呢?

var url = new UriBuilder("http://x.com/xyz/imgname.img_type_extension?somefield=somevalue");
string filename = Path.GetFileName(url.Path);
于 2013-06-12T08:04:06.377 回答
2

怎么样

var fNameWithQuery = (imageurl.Split('/'))[(imageurl.Split('/').Length) - 1];
//get first string from array created by splitting substring on occurence of '?'
var fNameAndExt = fNameWithQuery.Split('?')[0];
于 2013-06-12T07:46:48.153 回答
1

也许这个?

    string imgUrl = @"C:\blah.jpg"; //Loaded from DB
    System.IO.FileInfo f = new System.IO.FileInfo(imgUrl);
    string fileName = f.Name.Split('.')[0];
于 2013-06-12T07:49:11.663 回答