嘿伙计们,
我有几个图像 url,我从中下载数据并将其保存在 db 中。我(imageurl.Split('/'))[(imageurl.Split('/').Length) - 1];
用来创建文件名。
问题是,有些网址包含查询字符串。由于我为他们获得的文件名有模式imgname.img_type_extension?somefield=somevalue
如何从上面的子字符串中获取 filename.extension 离开查询字符串?
感谢您的光临...
var path = imageurl.Split('?')[0];
var fileName = Path.GetFileNameWithoutExtension(path);
编辑:对于带有扩展名的文件名,只需使用另一种方法Path
var path = imageurl.Split('?')[0];
var fileName = Path.GetFileName(path);
为什么不让 UriBuilder 为你做解析呢?
var url = new UriBuilder("http://x.com/xyz/imgname.img_type_extension?somefield=somevalue");
string filename = Path.GetFileName(url.Path);
怎么样
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];
也许这个?
string imgUrl = @"C:\blah.jpg"; //Loaded from DB
System.IO.FileInfo f = new System.IO.FileInfo(imgUrl);
string fileName = f.Name.Split('.')[0];